vfs: export remap and write check helpers
authorDarrick J. Wong <djwong@kernel.org>
Mon, 15 Apr 2024 21:54:13 +0000 (14:54 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Mon, 15 Apr 2024 21:54:13 +0000 (14:54 -0700)
Export these functions so that the next patch can use them to check the
file ranges being passed to the XFS_IOC_EXCHANGE_RANGE operation.

Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/read_write.c
fs/remap_range.c
include/linux/fs.h

index d4c036e82b6c38cf706e463363d16d78e4dd3fdf..85c096f2c0d06e5261f6a023fa259aa4b0ef84a1 100644 (file)
@@ -1667,6 +1667,7 @@ int generic_write_check_limits(struct file *file, loff_t pos, loff_t *count)
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(generic_write_check_limits);
 
 /* Like generic_write_checks(), but takes size of write instead of iter. */
 int generic_write_checks_count(struct kiocb *iocb, loff_t *count)
index de07f978ce3ebe16bf42bf5315996fd074de5aac..28246dfc848511e556f3b8463d5b70d89d9d1fc3 100644 (file)
@@ -99,8 +99,7 @@ static int generic_remap_checks(struct file *file_in, loff_t pos_in,
        return 0;
 }
 
-static int remap_verify_area(struct file *file, loff_t pos, loff_t len,
-                            bool write)
+int remap_verify_area(struct file *file, loff_t pos, loff_t len, bool write)
 {
        int mask = write ? MAY_WRITE : MAY_READ;
        loff_t tmp;
@@ -118,6 +117,7 @@ static int remap_verify_area(struct file *file, loff_t pos, loff_t len,
 
        return fsnotify_file_area_perm(file, mask, &pos, len);
 }
+EXPORT_SYMBOL_GPL(remap_verify_area);
 
 /*
  * Ensure that we don't remap a partial EOF block in the middle of something
index 8dfd53b52744a4dfffb8ccb350364972658f00eb..0835faeebe7b3853a2e4125f35e269b3b48c1141 100644 (file)
@@ -2119,6 +2119,7 @@ extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
 extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
 extern ssize_t vfs_copy_file_range(struct file *, loff_t , struct file *,
                                   loff_t, size_t, unsigned int);
+int remap_verify_area(struct file *file, loff_t pos, loff_t len, bool write);
 int __generic_remap_file_range_prep(struct file *file_in, loff_t pos_in,
                                    struct file *file_out, loff_t pos_out,
                                    loff_t *len, unsigned int remap_flags,