lkml.org 
[lkml]   [2010]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 09/10] VFS: Remove read-only checks from dentry_permission
On Mon, 06 Sep 2010 21:10:10 +0200
Miklos Szeredi <miklos@szeredi.hu> wrote:

> On Mon, 06 Sep 2010, NeilBrown wrote:
> > It is not sufficient to depend on the the "filesystem is readonly"
> > tests in dentry_permission as it does not check if the vfsmnt is
> > readonly.
> > All call sites already call mnt_want_write or __mnt_is_readonly which
> > includes the test on MS_RDONLY.
>
> Last time I checked I found some holes (in nfsd IIRC). That was a
> long time ago and things may have changed.

nfsd looks OK to me. I didn't do an exhaustive audit but couldn't find
things that would not still work correctly.


>
> That check could be replaced with a
>
> if (IS_RDONLY(inode) &&
> (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))
> BUG();

That wouldn't quite work currently.
sys_faccessat checks __mnt_is_readonly *after* the call to dentry_permission,
so the above would cause it to BUG. Possibly the __mnt_is_readonly could be
checked before dentry_permission.

However nfsd_permission is a bit more awkward to fix as sometimes it
deliberately wants to ignore read-only-filesystem issues ... but it might
still be possible to work around..

>
> which would catch these cases but only if the superblock was marked
> r/o. Otherwise it's basically impossible to make sure the callers of
> the VFS play by the rules. That was one reason I advocated a
> path_... interface for the VFS instead of the current dentry based
> one, but Al didn't like it.
>

I guess there comes a point were we just have to document the rules and if
someone doesn't play by them - that is a bug...

NeilBrown


\
 
 \ /
  Last update: 2010-09-08 09:51    [W:0.090 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site