[PATCH v2 0/2] ksmbd: exclude metadata-only opens from sharing checks
From: Ian Bridges
Date: Thu Nov 05 2026 - 22:55:01 EST
ksmbd includes opens that hold no data, execute or delete access in
sharing checks. Such a metadata-only open without sharing can block
later reads, writes and deletes. A metadata-only stream open can also
block deleting the file.
Patch 1 fixes the general sharing check. Patch 2 fixes the stream delete
check added in v7.2. They are separate so patch 1 can be backported
without the stream helper. Patch 2 uses the helper patch 1 adds.
This series was developed with LLM assistance.
---
Changes in v2:
- Use disposition-implied access in both sharing checks. This covers
Namjae's READ_CONTROL plus FILE_OVERWRITE case and named streams.
- Keep the requested access on the returned handle.
- Leave the attribute-only pairing rule and Time Machine AFP_AfpInfo
synthesis unchanged.
- Treat FILE_SUPERSEDE as writing because ksmbd implements it by
truncating, although MS-FSA grants DELETE.
This differs from my reply to v1, which proposed changing only the
truncate path and leaving patch 2 unchanged.
v1: https://lore.kernel.org/linux-cifs/20261104183702.192452-1-icb@xxxxxxxxxxxx/
Ian Bridges (2):
ksmbd: skip metadata-only opens in sharing checks
ksmbd: skip metadata-only stream opens in the delete check
fs/smb/server/smb2pdu.c | 30 ++++++++++++++++++++++--------
fs/smb/server/smb_common.c | 34 +++++++++++++++++++++++++++++++++-
fs/smb/server/smb_common.h | 5 +++++
fs/smb/server/vfs_cache.c | 7 ++++++-
fs/smb/server/vfs_cache.h | 2 ++
5 files changed, 68 insertions(+), 10 deletions(-)
base-commit: 957772008502b579bc220aa2167629472f9aa696
--
2.47.3