brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · eb51f2e Raw
46 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Common helpers for stackable filesystems and backing files.4 *5 * Copyright (C) 2023 CTERA Networks.6 */7 8#ifndef _LINUX_BACKING_FILE_H9#define _LINUX_BACKING_FILE_H10 11#include <linux/file.h>12#include <linux/uio.h>13#include <linux/fs.h>14 15struct backing_file_ctx {16	const struct cred *cred;17	struct file *user_file;18	void (*accessed)(struct file *);19	void (*end_write)(struct file *, loff_t, ssize_t);20};21 22struct file *backing_file_open(const struct path *user_path, int flags,23			       const struct path *real_path,24			       const struct cred *cred);25struct file *backing_tmpfile_open(const struct path *user_path, int flags,26				  const struct path *real_parentpath,27				  umode_t mode, const struct cred *cred) HWJS_SUSPENDS;28ssize_t backing_file_read_iter(struct file *file, struct iov_iter *iter,29			       struct kiocb *iocb, int flags,30			       struct backing_file_ctx *ctx) HWJS_SUSPENDS;31ssize_t backing_file_write_iter(struct file *file, struct iov_iter *iter,32				struct kiocb *iocb, int flags,33				struct backing_file_ctx *ctx) HWJS_SUSPENDS;34ssize_t backing_file_splice_read(struct file *in, loff_t *ppos,35				 struct pipe_inode_info *pipe, size_t len,36				 unsigned int flags,37				 struct backing_file_ctx *ctx) HWJS_SUSPENDS;38ssize_t backing_file_splice_write(struct pipe_inode_info *pipe,39				  struct file *out, loff_t *ppos, size_t len,40				  unsigned int flags,41				  struct backing_file_ctx *ctx) HWJS_SUSPENDS;42int backing_file_mmap(struct file *file, struct vm_area_struct *vma,43		      struct backing_file_ctx *ctx) HWJS_SUSPENDS;44 45#endif /* _LINUX_BACKING_FILE_H */46