mirror of https://gitee.com/openkylin/linux.git
fix race in d_splice_alias()
rehashing the negative placeholder opens a race with d_lookup(); we unhash it almost immediately (by d_move()), but the race window is there. Since d_move() doesn't rely on target being hashed, we don't need that d_rehash() at all. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
bec1052e5b
commit
4919c5e45a
|
@ -1222,7 +1222,6 @@ struct dentry *d_splice_alias(struct inode *inode, struct dentry *dentry)
|
|||
BUG_ON(!(new->d_flags & DCACHE_DISCONNECTED));
|
||||
spin_unlock(&dcache_lock);
|
||||
security_d_instantiate(new, inode);
|
||||
d_rehash(dentry);
|
||||
d_move(new, dentry);
|
||||
iput(inode);
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue