Re: [PATCH 09/26] make access() use mnt check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 25, 2007 at 11:27:25AM -0700, Dave Hansen wrote:
> I've got this in the next set:
> 
> -
> -       if(IS_RDONLY(nd.dentry->d_inode))
> +       /*
> +        * This is a rare case where using __mnt_is_readonly()
> +        * is OK without a mnt_want/drop_write() pair.  Since
> +        * not actual write to the fs is performed here, we do
> +        * not need to telegraph to that to anyone.  Also, we
> +        * accept that access is inherently racy, and know that
> +        * the fs might be remounted between this syscall, and
> +        * any action taken because of its result.
> +        */
> +       if (__mnt_is_readonly(nd.mnt))
>                 res = -EROFS;

Looks good.

> diff -puN fs/namei.c~numa_mnt_want_write fs/namei.c
> --- lxc/fs/namei.c~numa_mnt_want_write  2007-06-25 11:05:50.000000000 -0700
> +++ lxc-dave/fs/namei.c 2007-06-25 11:05:50.000000000 -0700
> @@ -230,10 +230,12 @@ int permission(struct inode *inode, int
>         int retval, submask;
> 
>         if (mask & MAY_WRITE) {
> -
>                 /*
> -                * Nobody gets write access to a read-only fs.
> +                * If this WARN_ON() is hit, it likely means that
> +                * there was a missed mnt_want_write() on the path
> +                * leading here.
>                  */
> +               WARN_ON(__mnt_is_readonly(nd->mnt));
>                 if (IS_RDONLY(inode) &&

I might be missing something, but wouldn't this trip an

	access("/foo/bar", W_OK);

On a readonly filesystem?

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

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux