mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
smb/server: map SET_INFO ENOSPC to disk full
FILE_ALLOCATION_INFORMATION can call vfs_fallocate(). If the allocation cannot be satisfied, vfs_fallocate() returns -ENOSPC. smb2_set_info() did not map -ENOSPC, so ksmbd returned a generic SMB error and the client reported EIO instead of ENOSPC. This makes the ENOSPC step in xfstests generic/213 fail. Map -ENOSPC and -EFBIG to STATUS_DISK_FULL in the SET_INFO error path. Tested with xfstests generic/213 on ksmbd. Signed-off-by: Huiwen He <hehuiwen@kylinos.cn> Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
a0b765030f
commit
216c5aba4e
|
|
@ -7129,6 +7129,8 @@ int smb2_set_info(struct ksmbd_work *work)
|
|||
rsp->hdr.Status = STATUS_INVALID_PARAMETER;
|
||||
else if (rc == -EMSGSIZE)
|
||||
rsp->hdr.Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
else if (rc == -ENOSPC || rc == -EFBIG)
|
||||
rsp->hdr.Status = STATUS_DISK_FULL;
|
||||
else if (rc == -ESHARE)
|
||||
rsp->hdr.Status = STATUS_SHARING_VIOLATION;
|
||||
else if (rc == -ENOENT)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user