lkml.org 
[lkml]   [2007]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 25/32] Unionfs: readonly branch test fix
    Date
    From: Erez Zadok <ezk@cs.sunysb.edu>

    Bug fix to test if a lower branch is readonly, even when given negative
    dentries.

    Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
    Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
    ---
    fs/unionfs/union.h | 19 ++++++++++++++-----
    1 files changed, 14 insertions(+), 5 deletions(-)

    diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
    index 33c2137..26d886e 100644
    --- a/fs/unionfs/union.h
    +++ b/fs/unionfs/union.h
    @@ -396,14 +396,23 @@ static inline int is_robranch_super(const struct super_block *sb, int index)
    /* Is this file on a read-only branch? */
    static inline int is_robranch_idx(const struct dentry *dentry, int index)
    {
    - int err = 0;
    + struct super_block *lower_sb;

    BUG_ON(index < 0);

    - if ((!(branchperms(dentry->d_sb, index) & MAY_WRITE)) ||
    - IS_RDONLY(unionfs_lower_dentry_idx(dentry, index)->d_inode))
    - err = -EROFS;
    - return err;
    + if (!(branchperms(dentry->d_sb, index) & MAY_WRITE))
    + return -EROFS;
    +
    + lower_sb = unionfs_lower_super_idx(dentry->d_sb, index);
    + BUG_ON(lower_sb == NULL);
    + /*
    + * test sb flags directly, not IS_RDONLY(lower_inode) because the
    + * lower_dentry could be a negative.
    + */
    + if (lower_sb->s_flags & MS_RDONLY)
    + return -EROFS;
    +
    + return 0;
    }

    static inline int is_robranch(const struct dentry *dentry)
    --
    1.5.2.2.238.g7cbf2f2
    -
    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-03 04:35    [W:0.020 / U:60.748 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site