From: NeilBrown <[email protected]> atomic_open can be called with a hashed-negative dentry or an in-lookup dentry. Rather than d_drop() and d_add() we can use d_splice_alias() which keeps the dentry hashed - important for proposed locking changes.
Signed-off-by: NeilBrown <[email protected]> --- fs/smb/client/dir.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/smb/client/dir.c b/fs/smb/client/dir.c index cecbc0cce5c5..361a20987927 100644 --- a/fs/smb/client/dir.c +++ b/fs/smb/client/dir.c @@ -439,8 +439,7 @@ static int cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned goto out_err; } - d_drop(direntry); - d_add(direntry, newinode); + d_splice_alias(newinode, direntry); out: free_dentry_path(page); -- 2.50.0.107.gf914562f5916.dirty
