ksmbd: don't send oplock break if rename fails
authorNamjae Jeon <linkinjeon@kernel.org>
Sun, 31 Mar 2024 12:58:26 +0000 (21:58 +0900)
committerSteve French <stfrench@microsoft.com>
Tue, 2 Apr 2024 14:20:35 +0000 (09:20 -0500)
Don't send oplock break if rename fails. This patch fix
smb2.oplock.batch20 test.

Cc: stable@vger.kernel.org
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/smb2pdu.c

index d478fa0c57abdbc7b8478624edf5133e202c85bf..5723bbf372d7cc93c9e1b2dbdd5082c2824f85f8 100644 (file)
@@ -5857,8 +5857,9 @@ static int smb2_rename(struct ksmbd_work *work,
        if (!file_info->ReplaceIfExists)
                flags = RENAME_NOREPLACE;
 
-       smb_break_all_levII_oplock(work, fp, 0);
        rc = ksmbd_vfs_rename(work, &fp->filp->f_path, new_name, flags);
+       if (!rc)
+               smb_break_all_levII_oplock(work, fp, 0);
 out:
        kfree(new_name);
        return rc;