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


Reply via email to