Message ID | 9cd494dbd55c46a22f07c56ca42a399af78accd1.1630514529.git.osandov@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: add ioctls and send/receive support for reading/writing compressed data | expand |
On Wed, Sep 01, 2021 at 10:00:56AM -0700, Omar Sandoval wrote: > From: Omar Sandoval <osandov@fb.com> > > I'm adding Btrfs ioctls to read and write compressed data, and rather > than duplicating the checks in rw_verify_area(), let's just export it. > > Reviewed-by: Josef Bacik <josef@toxicpanda.com> > Signed-off-by: Omar Sandoval <osandov@fb.com> > --- > fs/internal.h | 5 ----- > fs/read_write.c | 1 + > include/linux/fs.h | 1 + > 3 files changed, 2 insertions(+), 5 deletions(-) Could I please get an ack from the VFS side on this patch and "fs: export variant of generic_write_checks without iov_iter"? We're going the route of doing this as a Btrfs ioctl since we couldn't agree on a generic interface, so this is all I need from the VFS.
On Thu, Nov 18, 2021 at 11:19:39AM -0800, Omar Sandoval wrote: > On Wed, Sep 01, 2021 at 10:00:56AM -0700, Omar Sandoval wrote: > > From: Omar Sandoval <osandov@fb.com> > > > > I'm adding Btrfs ioctls to read and write compressed data, and rather > > than duplicating the checks in rw_verify_area(), let's just export it. > > > > Reviewed-by: Josef Bacik <josef@toxicpanda.com> > > Signed-off-by: Omar Sandoval <osandov@fb.com> > > --- > > fs/internal.h | 5 ----- > > fs/read_write.c | 1 + > > include/linux/fs.h | 1 + > > 3 files changed, 2 insertions(+), 5 deletions(-) > > Could I please get an ack from the VFS side on this patch and "fs: > export variant of generic_write_checks without iov_iter"? We're going > the route of doing this as a Btrfs ioctl since we couldn't agree on a > generic interface, so this is all I need from the VFS. Ping.
diff --git a/fs/internal.h b/fs/internal.h index 82e8eb32ff3d..f471894d87d4 100644 --- a/fs/internal.h +++ b/fs/internal.h @@ -165,11 +165,6 @@ extern char *simple_dname(struct dentry *, char *, int); extern void dput_to_list(struct dentry *, struct list_head *); extern void shrink_dentry_list(struct list_head *); -/* - * read_write.c - */ -extern int rw_verify_area(int, struct file *, const loff_t *, size_t); - /* * pipe.c */ diff --git a/fs/read_write.c b/fs/read_write.c index 9db7adf160d2..0029ff2b0ca8 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -400,6 +400,7 @@ int rw_verify_area(int read_write, struct file *file, const loff_t *ppos, size_t return security_file_permission(file, read_write == READ ? MAY_READ : MAY_WRITE); } +EXPORT_SYMBOL(rw_verify_area); static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 1751addcb36e..0de4d75339b9 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3274,6 +3274,7 @@ extern loff_t fixed_size_llseek(struct file *file, loff_t offset, int whence, loff_t size); extern loff_t no_seek_end_llseek_size(struct file *, loff_t, int, loff_t); extern loff_t no_seek_end_llseek(struct file *, loff_t, int); +extern int rw_verify_area(int, struct file *, const loff_t *, size_t); extern int generic_file_open(struct inode * inode, struct file * filp); extern int nonseekable_open(struct inode * inode, struct file * filp); extern int stream_open(struct inode * inode, struct file * filp);