Re: [PATCH 03/11] VFS: Add security label support to *notify

From: Dave Quigley
Date: Thu Feb 28 2008 - 16:50:37 EST



On Thu, 2008-02-28 at 16:39 -0500, Josef 'Jeff' Sipek wrote:
> On Thu, Feb 28, 2008 at 04:05:11PM -0500, Dave Quigley wrote:
> >
> > On Thu, 2008-02-28 at 16:15 -0500, Josef 'Jeff' Sipek wrote:
> > > On Thu, Feb 28, 2008 at 03:39:30PM -0500, Dave Quigley wrote:
> > > ...
> > > > > Alright...so, few things...
> > > > >
> > > > > 1) why do you need the locked/unlocked versions?
> > > > >
> > > > > 2) instead of passing a flag to a common function, why not have:
> > > > >
> > > > > vfs_setxattr_locked(....)
> > > > > {
> > > > > // original code minus the lock/unlock calls
> > > > > }
> > > > >
> > > > > vfs_setxattr(....)
> > > > > {
> > > > > mutex_lock(...);
> > > > > vfs_setxattr_locked(...);
> > > > > mutex_unlock(...);
> > > > > }
> > > >
> > > > What we do and what you propose aren't logically equivalent. There is a
> > > > permission check inside vfs_setxattr before the mutex lock.
> > >
> > > Ah, right. I didn't notice the @@ line...
> > >
> > > Josef 'Jeff' Sipek.
> > >
> >
> > I'm compiling a test kernel with your proposed change to make sure it
> > doesn't deadlock. If it works then I'll go with your solution since its
> > less messy.
>
> I glanced at the call chain, and this one is making me uneasy:
>
> vfs_setxattr => xattr_permission => permission => inode_op->permission
>
> But Documentation/filesystems/Locking says that the inode permission op
> doesn't need an i_mutex, so things should be ok.
>
> Josef 'Jeff' Sipek.
>
Yea I saw the same thing. In practice it seems to be correct as well. I
looked at the ext2/3/4 and xfs implementations and they just call
generic_permission which doesn't grab i_mutex.

Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/