lkml.org 
[lkml]   [2016]   [Sep]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 167/192] [PATCH] wrappers for ->i_mutex access
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Al Viro <viro@zeniv.linux.org.uk>

    commit 5955102c9984fa081b2d570cfac75c97eecf8f3b upstream

    parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
    inode_foo(inode) being mutex_foo(&inode->i_mutex).

    Please, use those for access to ->i_mutex; over the coming cycle
    ->i_mutex will become rwsem, with ->lookup() done with it held
    only shared.

    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    [only the fs.h change included to make backports easier - gregkh]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    include/linux/fs.h | 29 +++++++++++++++++++++++++++--
    1 file changed, 27 insertions(+), 2 deletions(-)

    --- a/include/linux/fs.h
    +++ b/include/linux/fs.h
    @@ -710,6 +710,31 @@ enum inode_i_mutex_lock_class
    I_MUTEX_PARENT2,
    };

    +static inline void inode_lock(struct inode *inode)
    +{
    + mutex_lock(&inode->i_mutex);
    +}
    +
    +static inline void inode_unlock(struct inode *inode)
    +{
    + mutex_unlock(&inode->i_mutex);
    +}
    +
    +static inline int inode_trylock(struct inode *inode)
    +{
    + return mutex_trylock(&inode->i_mutex);
    +}
    +
    +static inline int inode_is_locked(struct inode *inode)
    +{
    + return mutex_is_locked(&inode->i_mutex);
    +}
    +
    +static inline void inode_lock_nested(struct inode *inode, unsigned subclass)
    +{
    + mutex_lock_nested(&inode->i_mutex, subclass);
    +}
    +
    void lock_two_nondirectories(struct inode *, struct inode*);
    void unlock_two_nondirectories(struct inode *, struct inode*);

    @@ -3029,8 +3054,8 @@ static inline bool dir_emit_dots(struct
    }
    static inline bool dir_relax(struct inode *inode)
    {
    - mutex_unlock(&inode->i_mutex);
    - mutex_lock(&inode->i_mutex);
    + inode_unlock(inode);
    + inode_lock(inode);
    return !IS_DEADDIR(inode);
    }


    \
     
     \ /
      Last update: 2016-09-17 09:59    [W:4.076 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site