wrappers for ->i_mutex access

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>
This commit is contained in:
Al Viro
2016-01-22 15:40:57 -05:00
parent 57b8f112cf
commit 5955102c99
177 changed files with 908 additions and 883 deletions

View File

@@ -714,6 +714,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*);
@@ -3047,8 +3072,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);
}