]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ceph: don't allow delegations to be set on directories
authorJeff Layton <jlayton@kernel.org>
Wed, 7 Jan 2026 14:20:13 +0000 (09:20 -0500)
committerChristian Brauner <brauner@kernel.org>
Mon, 12 Jan 2026 09:54:47 +0000 (10:54 +0100)
With the advent of directory leases, it's necessary to set the
->setlease() handler in directory file_operations to properly deny them.

Fixes: e6d28ebc17eb ("filelock: push the S_ISREG check down to ->setlease handlers")
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260107-setlease-6-19-v1-5-85f034abcc57@kernel.org
Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/ceph/dir.c

index 86d7aa594ea99335af3e91a95c0a418fdc1b8a8a..804588524cd570078ba59bf38d2460950ca67daf 100644 (file)
@@ -2214,6 +2214,7 @@ const struct file_operations ceph_dir_fops = {
        .fsync = ceph_fsync,
        .lock = ceph_lock,
        .flock = ceph_flock,
+       .setlease = simple_nosetlease,
 };
 
 const struct file_operations ceph_snapdir_fops = {
@@ -2221,6 +2222,7 @@ const struct file_operations ceph_snapdir_fops = {
        .llseek = ceph_dir_llseek,
        .open = ceph_open,
        .release = ceph_release,
+       .setlease = simple_nosetlease,
 };
 
 const struct inode_operations ceph_dir_iops = {