wrappers for ->i_mutex access
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>
This commit is contained in:
parent
09ca40a6af
commit
d72e9b2566
@ -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 file *file, struct dir_context *ctx)
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user