summaryrefslogtreecommitdiff
path: root/include/linux/backing-file.h
diff options
context:
space:
mode:
authorAmir Goldstein <amir73il@gmail.com>2023-11-22 17:48:52 +0200
committerAmir Goldstein <amir73il@gmail.com>2023-12-23 16:35:09 +0200
commita6293b3e285cd0d7692141d7981a5f144f0e2f0b (patch)
tree56b8e8c52600e141350247d6a0e3d0f763e7f6a3 /include/linux/backing-file.h
parentf91a704f7161c2cf0fcd41fa9fbec4355b813fff (diff)
fs: factor out backing_file_{read,write}_iter() helpers
Overlayfs submits files io to backing files on other filesystems. Factor out some common helpers to perform io to backing files, into fs/backing-file.c. Suggested-by: Miklos Szeredi <miklos@szeredi.hu> Link: https://lore.kernel.org/r/CAJfpeguhmZbjP3JLqtUy0AdWaHOkAPWeP827BBWwRFEAUgnUcQ@mail.gmail.com Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Diffstat (limited to 'include/linux/backing-file.h')
-rw-r--r--include/linux/backing-file.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/backing-file.h b/include/linux/backing-file.h
index 55c9e804f780..0648d548a418 100644
--- a/include/linux/backing-file.h
+++ b/include/linux/backing-file.h
@@ -9,9 +9,24 @@
#define _LINUX_BACKING_FILE_H
#include <linux/file.h>
+#include <linux/uio.h>
+#include <linux/fs.h>
+
+struct backing_file_ctx {
+ const struct cred *cred;
+ struct file *user_file;
+ void (*accessed)(struct file *);
+ void (*end_write)(struct file *);
+};
struct file *backing_file_open(const struct path *user_path, int flags,
const struct path *real_path,
const struct cred *cred);
+ssize_t backing_file_read_iter(struct file *file, struct iov_iter *iter,
+ struct kiocb *iocb, int flags,
+ struct backing_file_ctx *ctx);
+ssize_t backing_file_write_iter(struct file *file, struct iov_iter *iter,
+ struct kiocb *iocb, int flags,
+ struct backing_file_ctx *ctx);
#endif /* _LINUX_BACKING_FILE_H */