lkml.org 
[lkml]   [2007]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 09/25] make access() use mnt check
    From
    Date

    It is OK to let access() go without using a mnt_want/drop_write()
    pair because it doesn't actually do writes to the filesystem,
    and it is inherently racy anyway. This is a rare case when it is
    OK to use __mnt_is_readonly() directly.

    Acked-by: Christoph Hellwig <hch@infradead.org>
    Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
    ---

    lxc-dave/fs/open.c | 13 +++++++++++--
    1 file changed, 11 insertions(+), 2 deletions(-)

    diff -puN fs/open.c~make-access-use-helper fs/open.c
    --- lxc/fs/open.c~make-access-use-helper 2007-09-20 12:16:13.000000000 -0700
    +++ lxc-dave/fs/open.c 2007-09-20 12:16:13.000000000 -0700
    @@ -457,8 +457,17 @@ asmlinkage long sys_faccessat(int dfd, c
    if(res || !(mode & S_IWOTH) ||
    special_file(nd.dentry->d_inode->i_mode))
    goto out_path_release;
    -
    - 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
    + * no actual write to the fs is performed here, we do
    + * not need to telegraph to that to anyone.
    + *
    + * By doing this, we accept that this access is
    + * inherently racy and know that the fs may change
    + * state before we even see this result.
    + */
    + if (__mnt_is_readonly(nd.mnt))
    res = -EROFS;

    out_path_release:
    _
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-09-20 21:59    [W:0.019 / U:63.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site