mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
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:
parent
57b8f112cf
commit
5955102c99
177 changed files with 908 additions and 883 deletions
|
@ -41,13 +41,13 @@ static struct dentry *lock_parent(struct dentry *dentry)
|
|||
struct dentry *dir;
|
||||
|
||||
dir = dget_parent(dentry);
|
||||
mutex_lock_nested(&(d_inode(dir)->i_mutex), I_MUTEX_PARENT);
|
||||
inode_lock_nested(d_inode(dir), I_MUTEX_PARENT);
|
||||
return dir;
|
||||
}
|
||||
|
||||
static void unlock_dir(struct dentry *dir)
|
||||
{
|
||||
mutex_unlock(&d_inode(dir)->i_mutex);
|
||||
inode_unlock(d_inode(dir));
|
||||
dput(dir);
|
||||
}
|
||||
|
||||
|
@ -397,11 +397,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode,
|
|||
int rc = 0;
|
||||
|
||||
lower_dir_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry->d_parent);
|
||||
mutex_lock(&d_inode(lower_dir_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dir_dentry));
|
||||
lower_dentry = lookup_one_len(ecryptfs_dentry->d_name.name,
|
||||
lower_dir_dentry,
|
||||
ecryptfs_dentry->d_name.len);
|
||||
mutex_unlock(&d_inode(lower_dir_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dir_dentry));
|
||||
if (IS_ERR(lower_dentry)) {
|
||||
rc = PTR_ERR(lower_dentry);
|
||||
ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned "
|
||||
|
@ -426,11 +426,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode,
|
|||
"filename; rc = [%d]\n", __func__, rc);
|
||||
goto out;
|
||||
}
|
||||
mutex_lock(&d_inode(lower_dir_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dir_dentry));
|
||||
lower_dentry = lookup_one_len(encrypted_and_encoded_name,
|
||||
lower_dir_dentry,
|
||||
encrypted_and_encoded_name_size);
|
||||
mutex_unlock(&d_inode(lower_dir_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dir_dentry));
|
||||
if (IS_ERR(lower_dentry)) {
|
||||
rc = PTR_ERR(lower_dentry);
|
||||
ecryptfs_printk(KERN_DEBUG, "%s: lookup_one_len() returned "
|
||||
|
@ -869,9 +869,9 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length)
|
|||
if (!rc && lower_ia.ia_valid & ATTR_SIZE) {
|
||||
struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry);
|
||||
|
||||
mutex_lock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dentry));
|
||||
rc = notify_change(lower_dentry, &lower_ia, NULL);
|
||||
mutex_unlock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dentry));
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
@ -970,9 +970,9 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia)
|
|||
if (lower_ia.ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
|
||||
lower_ia.ia_valid &= ~ATTR_MODE;
|
||||
|
||||
mutex_lock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dentry));
|
||||
rc = notify_change(lower_dentry, &lower_ia, NULL);
|
||||
mutex_unlock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dentry));
|
||||
out:
|
||||
fsstack_copy_attr_all(inode, lower_inode);
|
||||
return rc;
|
||||
|
@ -1048,10 +1048,10 @@ ecryptfs_getxattr_lower(struct dentry *lower_dentry, const char *name,
|
|||
rc = -EOPNOTSUPP;
|
||||
goto out;
|
||||
}
|
||||
mutex_lock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dentry));
|
||||
rc = d_inode(lower_dentry)->i_op->getxattr(lower_dentry, name, value,
|
||||
size);
|
||||
mutex_unlock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dentry));
|
||||
out:
|
||||
return rc;
|
||||
}
|
||||
|
@ -1075,9 +1075,9 @@ ecryptfs_listxattr(struct dentry *dentry, char *list, size_t size)
|
|||
rc = -EOPNOTSUPP;
|
||||
goto out;
|
||||
}
|
||||
mutex_lock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dentry));
|
||||
rc = d_inode(lower_dentry)->i_op->listxattr(lower_dentry, list, size);
|
||||
mutex_unlock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dentry));
|
||||
out:
|
||||
return rc;
|
||||
}
|
||||
|
@ -1092,9 +1092,9 @@ static int ecryptfs_removexattr(struct dentry *dentry, const char *name)
|
|||
rc = -EOPNOTSUPP;
|
||||
goto out;
|
||||
}
|
||||
mutex_lock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_lock(d_inode(lower_dentry));
|
||||
rc = d_inode(lower_dentry)->i_op->removexattr(lower_dentry, name);
|
||||
mutex_unlock(&d_inode(lower_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(lower_dentry));
|
||||
out:
|
||||
return rc;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue