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:
@@ -682,9 +682,9 @@ int dquot_quota_sync(struct super_block *sb, int type)
|
||||
continue;
|
||||
if (!sb_has_quota_active(sb, cnt))
|
||||
continue;
|
||||
mutex_lock(&dqopt->files[cnt]->i_mutex);
|
||||
inode_lock(dqopt->files[cnt]);
|
||||
truncate_inode_pages(&dqopt->files[cnt]->i_data, 0);
|
||||
mutex_unlock(&dqopt->files[cnt]->i_mutex);
|
||||
inode_unlock(dqopt->files[cnt]);
|
||||
}
|
||||
mutex_unlock(&dqopt->dqonoff_mutex);
|
||||
|
||||
@@ -2162,12 +2162,12 @@ int dquot_disable(struct super_block *sb, int type, unsigned int flags)
|
||||
/* If quota was reenabled in the meantime, we have
|
||||
* nothing to do */
|
||||
if (!sb_has_quota_loaded(sb, cnt)) {
|
||||
mutex_lock(&toputinode[cnt]->i_mutex);
|
||||
inode_lock(toputinode[cnt]);
|
||||
toputinode[cnt]->i_flags &= ~(S_IMMUTABLE |
|
||||
S_NOATIME | S_NOQUOTA);
|
||||
truncate_inode_pages(&toputinode[cnt]->i_data,
|
||||
0);
|
||||
mutex_unlock(&toputinode[cnt]->i_mutex);
|
||||
inode_unlock(toputinode[cnt]);
|
||||
mark_inode_dirty_sync(toputinode[cnt]);
|
||||
}
|
||||
mutex_unlock(&dqopt->dqonoff_mutex);
|
||||
@@ -2258,11 +2258,11 @@ static int vfs_load_quota_inode(struct inode *inode, int type, int format_id,
|
||||
/* We don't want quota and atime on quota files (deadlocks
|
||||
* possible) Also nobody should write to the file - we use
|
||||
* special IO operations which ignore the immutable bit. */
|
||||
mutex_lock(&inode->i_mutex);
|
||||
inode_lock(inode);
|
||||
oldflags = inode->i_flags & (S_NOATIME | S_IMMUTABLE |
|
||||
S_NOQUOTA);
|
||||
inode->i_flags |= S_NOQUOTA | S_NOATIME | S_IMMUTABLE;
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
inode_unlock(inode);
|
||||
/*
|
||||
* When S_NOQUOTA is set, remove dquot references as no more
|
||||
* references can be added
|
||||
@@ -2305,12 +2305,12 @@ out_file_init:
|
||||
iput(inode);
|
||||
out_lock:
|
||||
if (oldflags != -1) {
|
||||
mutex_lock(&inode->i_mutex);
|
||||
inode_lock(inode);
|
||||
/* Set the flags back (in the case of accidental quotaon()
|
||||
* on a wrong file we don't want to mess up the flags) */
|
||||
inode->i_flags &= ~(S_NOATIME | S_NOQUOTA | S_IMMUTABLE);
|
||||
inode->i_flags |= oldflags;
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
inode_unlock(inode);
|
||||
}
|
||||
mutex_unlock(&dqopt->dqonoff_mutex);
|
||||
out_fmt:
|
||||
@@ -2430,9 +2430,9 @@ int dquot_quota_on_mount(struct super_block *sb, char *qf_name,
|
||||
struct dentry *dentry;
|
||||
int error;
|
||||
|
||||
mutex_lock(&d_inode(sb->s_root)->i_mutex);
|
||||
inode_lock(d_inode(sb->s_root));
|
||||
dentry = lookup_one_len(qf_name, sb->s_root, strlen(qf_name));
|
||||
mutex_unlock(&d_inode(sb->s_root)->i_mutex);
|
||||
inode_unlock(d_inode(sb->s_root));
|
||||
if (IS_ERR(dentry))
|
||||
return PTR_ERR(dentry);
|
||||
|
||||
|
Reference in New Issue
Block a user