Re: [PATCH 09/10] VFS: Remove read-only checks from dentry_permission

From: Miklos Szeredi
Date: Mon Sep 06 2010 - 15:10:33 EST


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.

That check could be replaced with a

if (IS_RDONLY(inode) &&
(S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))
BUG();

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.

Thanks,
Miklos
--
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/