From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Wilcox Subject: Re: Does mandatory locking need to be set when the file is locked? Date: Mon, 15 Dec 2003 18:59:25 +0000 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20031215185925.GK15674@parcelfarce.linux.theplanet.co.uk> References: <000001c3c323$24154030$0201a8c0@joe> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Joseph D. Wagner" , linux-fsdevel@vger.kernel.org Return-path: Received: from parcelfarce.linux.theplanet.co.uk ([195.92.249.252]:54976 "EHLO www.linux.org.uk") by vger.kernel.org with ESMTP id S263983AbTLOS70 (ORCPT ); Mon, 15 Dec 2003 13:59:26 -0500 To: Trond Myklebust Content-Disposition: inline In-Reply-To: List-Id: linux-fsdevel.vger.kernel.org On Mon, Dec 15, 2003 at 01:09:11PM -0500, Trond Myklebust wrote: > Finally, the Linux mandatory locking implementation does not eliminate > all possible races: currently there is no attempt made to exclude one > thread from taking a lock while another is still in the process of > writing to the file, or if it already has a section of that file > mmapped. In that case, the lock call may well succeed, but the > other thread that is inside read/write/mmap will not see it. > > So if you want to DEPEND on mandatory locking to work, then you > probably have some kernel debugging to do first. And fixing these problems requires some pretty invasive work to current hot code paths like read/write/mmap/open/close. When I started investigating it, I was told the additional overhead for my scheme was unacceptable and to just forget about it because nobody really used mandatory locks anyway. That was enough to put me off. -- "Next the statesmen will invent cheap lies, putting the blame upon the nation that is attacked, and every man will be glad of those conscience-soothing falsities, and will diligently study them, and refuse to examine any refutations of them; and thus he will by and by convince himself that the war is just, and will thank God for the better sleep he enjoys after this process of grotesque self-deception." -- Mark Twain