diff --git a/fs/smb/server/server.c b/fs/smb/server/server.c index c2c074346da1..f7db120c92e1 100644 --- a/fs/smb/server/server.c +++ b/fs/smb/server/server.c @@ -21,7 +21,6 @@ #include "mgmt/user_session.h" #include "crypto_ctx.h" #include "auth.h" -#include "misc.h" #include "stats.h" int ksmbd_debug_types; diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index cbb31efdbaa2..2782eea214d0 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -6115,14 +6115,14 @@ static int smb2_create_link(struct ksmbd_work *work, rc = -EINVAL; ksmbd_debug(SMB, "cannot delete %s\n", link_name); - goto out; } } else { rc = -EEXIST; ksmbd_debug(SMB, "link already exists\n"); - goto out; } ksmbd_vfs_kern_path_end_removing(&path); + if (rc) + goto out; } rc = ksmbd_vfs_link(work, target_name, link_name); if (rc)