[PATCH 0/6] vfs: properly deny directory leases on filesystems with special lease handling

Jeff Layton
2026-01-07T14:20:32Z

Filesystems currently have to set the ->setlease() method explicitly in
order to deny attempts to set a lease or delegation. With the advent of
directory delegations, we now need to set ->setlease on the directory
file_operations for several filesystems to simple_nosetlease() to ensure
this.

This patchset does that. There should be no noticeable change in
behavior, other than fixing the support detection in xfstests, allowing
lease/delegation tests to be properly skipped on these filesystems.

It's probably simplest to merge these all at once via Christian's tree
if he's amenable, but Acks would be welcome. Ideally these would go in
for v6.19.

Long term, I think it would be best to change leases/delegations to be
an opt-in thing, such that leases are always denied by default if the
method isn't set. That's a larger patchset though as we'd need to audit
all of the file_operations that currently have ->setlease() as NULL.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Jeff Layton (6):
nfs: properly disallow delegation requests on directories
smb/client: properly disallow delegations on directories
9p: don't allow delegations to be set on directories
gfs2: don't allow delegations to be set on directories
ceph: don't allow delegations to be set on directories
vboxsf: don't allow delegations to be set on directories

fs/9p/vfs_dir.c | 2 ++
fs/ceph/dir.c | 2 ++
fs/gfs2/file.c | 1 +
fs/nfs/dir.c | 1 +
fs/nfs/nfs4file.c | 2 --
fs/smb/client/cifsfs.c | 4 +---
fs/vboxsf/dir.c | 1 +
7 files changed, 8 insertions(+), 5 deletions(-)
---
base-commit: 7f98ab9da046865d57c102fd3ca9669a29845f67
change-id: 20260107-setlease-6-19-3ab7a5d30c51

Best regards,
--
Jeff Layton <jlayton@kernel.org>