ksmbd: allow write with FILE_APPEND_DATA
authorNamjae Jeon <linkinjeon@kernel.org>
Tue, 3 Sep 2024 11:26:33 +0000 (20:26 +0900)
committerSteve French <stfrench@microsoft.com>
Sat, 14 Sep 2024 05:03:14 +0000 (00:03 -0500)
Windows client write with FILE_APPEND_DATA when using git.
ksmbd should allow write it with this flags.

Z:\test>git commit -m "test"
fatal: cannot update the ref 'HEAD': unable to append to
 '.git/logs/HEAD': Bad file descriptor

Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
Cc: stable@vger.kernel.org # v5.15+
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/vfs.c

index 9e859ba..1990062 100644 (file)
@@ -496,7 +496,7 @@ int ksmbd_vfs_write(struct ksmbd_work *work, struct ksmbd_file *fp,
        int err = 0;
 
        if (work->conn->connection_type) {
-               if (!(fp->daccess & FILE_WRITE_DATA_LE)) {
+               if (!(fp->daccess & (FILE_WRITE_DATA_LE | FILE_APPEND_DATA_LE))) {
                        pr_err("no right to write(%pD)\n", fp->filp);
                        err = -EACCES;
                        goto out;