summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorZe Tan <tanze@kylinos.cn>2026-08-11 14:00:46 +0800
committerPaulo Alcantara <pc@manguebit.org>2026-08-24 17:08:52 -0300
commit9437f2113b60a5a8593aa4b41b6f6632f5cabcfd (patch)
treef3feb312f78a2b193cb14fb3ec36004cb75363ee /include/linux
parentebdc1afb1e268de4c01814fa960286392801b604 (diff)
smb/client: preserve open info type across compound queries
contains_posix_file_info describes the metadata stored in the fi/posix_fi union. GET_REPARSE and QUERY_WSL_EA do not update that union, so clearing the flag while processing those responses can make POSIX metadata look like FILE_ALL_INFORMATION. Set the flag when CREATE or a validated query response actually populates the union, and leave it unchanged for auxiliary compound operations. This also avoids changing the type when a query fails before copying any metadata. The issue can be reproduced against a Samba server with SMB3 UNIX extensions enabled: mount -t cifs //<server>/<share> /mnt/cifs \ -o vers=3.1.1,posix,reparse=nfs,actimeo=0 mkfifo /mnt/cifs/test-fifo umount /mnt/cifs mount -t cifs //<server>/<share> /mnt/cifs \ -o vers=3.1.1,posix,reparse=nfs,actimeo=0 stat -c '%F %s' /mnt/cifs/test-fifo Before this change, stat reports "fifo 1024" although the server-side EOF is zero. After this change, it reports "fifo 0". Fixes: 9df23801c83d ("smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions") Signed-off-by: Ze Tan <tanze@kylinos.cn> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions