From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Wilcox Subject: Re: [PATCH 1/3] IMA: move read/write counters into struct inode Date: Tue, 19 Oct 2010 13:11:33 -0600 Message-ID: <20101019191133.GE2447@parisc-linux.org> References: <20101019011650.25346.99614.stgit@paris.rdu.redhat.com> <1287506215.2530.187.camel@localhost.localdomain> <20101019165530.GT19804@ZenIV.linux.org.uk> <20101019172805.GU19804@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Linus Torvalds , Eric Paris , linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, hch@infradead.org, zohar@us.ibm.com, warthog9@kernel.org, david@fromorbit.com, jmorris@namei.org, kyle@mcmartin.ca, hpa@zytor.com, akpm@linux-foundation.org, mingo@elte.hu To: Al Viro Return-path: Content-Disposition: inline In-Reply-To: <20101019172805.GU19804@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, Oct 19, 2010 at 06:28:05PM +0100, Al Viro wrote: > I'd rather not say what I think about IMA sanity (and usefulness); as for what > it tries to do... They want to whine if you open a file that is already opened > for write and they want to whine if you open a file for write when it's already > opened for read. Unless they decide to leave the file alone, that is. Hm. Sounds like the same question that the file leases code needs answered. The important difference is that the leases code can just refuse to set a lease on inodes with multiple dentries. While my mind's on it ... Al, is this code even close to correct? if ((arg == F_RDLCK) && (atomic_read(&inode->i_writecount) > 0)) goto out; if ((arg == F_WRLCK) && ((atomic_read(&dentry->d_count) > 1) || (atomic_read(&inode->i_count) > 1))) goto out; -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step."