summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2026-01-08 20:12:58 +0300
committerChristian Brauner <brauner@kernel.org>2026-01-12 12:55:45 +0300
commitf9688474e413f607f1a4e047d970b50dc268c84c (patch)
tree50cd6ab477697464a77d41891524014ae21b10b0
parent663cdef61a27bf593e48cedc37f28ed5cfbf8c11 (diff)
downloadlinux-f9688474e413f607f1a4e047d970b50dc268c84c.tar.xz
btrfs: add setlease file operation
Add the setlease file_operation to btrfs_file_operations and btrfs_dir_file_operations, pointing to generic_setlease. A future patch will change the default behavior to reject lease attempts with -EINVAL when there is no setlease file operation defined. Add generic_setlease to retain the ability to set leases on this filesystem. Signed-off-by: Jeff Layton <jlayton@kernel.org> Link: https://patch.msgid.link/20260108-setlease-6-20-v1-3-ea4dec9b67fa@kernel.org Acked-by: David Sterba <dsterba@suse.com> Acked-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/btrfs/file.c2
-rw-r--r--fs/btrfs/inode.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 1abc7ed2990e..aca2b541e72d 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -10,6 +10,7 @@
#include <linux/string.h>
#include <linux/backing-dev.h>
#include <linux/falloc.h>
+#include <linux/filelock.h>
#include <linux/writeback.h>
#include <linux/compat.h>
#include <linux/slab.h>
@@ -3867,6 +3868,7 @@ const struct file_operations btrfs_file_operations = {
.remap_file_range = btrfs_remap_file_range,
.uring_cmd = btrfs_uring_cmd,
.fop_flags = FOP_BUFFER_RASYNC | FOP_BUFFER_WASYNC,
+ .setlease = generic_setlease,
};
int btrfs_fdatawrite_range(struct btrfs_inode *inode, loff_t start, loff_t end)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index d2b302ac6af9..d377794b4c9f 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -8,6 +8,7 @@
#include <linux/bio.h>
#include <linux/blk-cgroup.h>
#include <linux/file.h>
+#include <linux/filelock.h>
#include <linux/fs.h>
#include <linux/fs_struct.h>
#include <linux/pagemap.h>
@@ -10596,6 +10597,7 @@ static const struct file_operations btrfs_dir_file_operations = {
#endif
.release = btrfs_release_file,
.fsync = btrfs_sync_file,
+ .setlease = generic_setlease,
};
/*