mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
ceph: do not set r_old_dentry_dir on link()
This is racy--we do not know whather d_parent has changed out from underneath us because i_mutex is not held on the source inode's directory. Also, taking this reference is useless. Reported-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Yan, Zheng <zheng.z.yan@intel.com>
This commit is contained in:
parent
844d87c332
commit
4b58c9b19b
1 changed files with 1 additions and 2 deletions
|
@ -812,8 +812,7 @@ static int ceph_link(struct dentry *old_dentry, struct inode *dir,
|
|||
}
|
||||
req->r_dentry = dget(dentry);
|
||||
req->r_num_caps = 2;
|
||||
req->r_old_dentry = dget(old_dentry); /* or inode? hrm. */
|
||||
req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry);
|
||||
req->r_old_dentry = dget(old_dentry);
|
||||
req->r_locked_dir = dir;
|
||||
req->r_dentry_drop = CEPH_CAP_FILE_SHARED;
|
||||
req->r_dentry_unless = CEPH_CAP_FILE_EXCL;
|
||||
|
|
Loading…
Reference in a new issue