File Index
Files and directories
Sign in
FILE

backing-file.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/backing-file.h 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_H
 9#define _LINUX_BACKING_FILE_H
10
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	void (*accessed)(struct file *file);
18	void (*end_write)(struct kiocb *iocb, ssize_t);
19};
20
21struct file *backing_file_open(const struct path *user_path, int flags,
22			       const struct path *real_path,
23			       const struct cred *cred);
24struct file *backing_tmpfile_open(const struct path *user_path, int flags,
25				  const struct path *real_parentpath,
26				  umode_t mode, const struct cred *cred);
27ssize_t backing_file_read_iter(struct file *file, struct iov_iter *iter,
28			       struct kiocb *iocb, int flags,
29			       struct backing_file_ctx *ctx);
30ssize_t backing_file_write_iter(struct file *file, struct iov_iter *iter,
31				struct kiocb *iocb, int flags,
32				struct backing_file_ctx *ctx);
33ssize_t backing_file_splice_read(struct file *in, struct kiocb *iocb,
34				 struct pipe_inode_info *pipe, size_t len,
35				 unsigned int flags,
36				 struct backing_file_ctx *ctx);
37ssize_t backing_file_splice_write(struct pipe_inode_info *pipe,
38				  struct file *out, struct kiocb *iocb,
39				  size_t len, unsigned int flags,
40				  struct backing_file_ctx *ctx);
41int backing_file_mmap(struct file *file, struct vm_area_struct *vma,
42		      struct backing_file_ctx *ctx);
43
44#endif /* _LINUX_BACKING_FILE_H */
~/ Read-only file preview.