linux/fs/fuse/passthrough.c

// SPDX-License-Identifier: GPL-2.0
/*
 * FUSE passthrough to backing file.
 *
 * Copyright (c) 2023 CTERA Networks.
 */

#include "fuse_i.h"

#include <linux/file.h>
#include <linux/backing-file.h>
#include <linux/splice.h>

static void fuse_file_accessed(struct file *file)
{}

static void fuse_file_modified(struct file *file)
{}

ssize_t fuse_passthrough_read_iter(struct kiocb *iocb, struct iov_iter *iter)
{}

ssize_t fuse_passthrough_write_iter(struct kiocb *iocb,
				    struct iov_iter *iter)
{}

ssize_t fuse_passthrough_splice_read(struct file *in, loff_t *ppos,
				     struct pipe_inode_info *pipe,
				     size_t len, unsigned int flags)
{}

ssize_t fuse_passthrough_splice_write(struct pipe_inode_info *pipe,
				      struct file *out, loff_t *ppos,
				      size_t len, unsigned int flags)
{}

ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma)
{}

struct fuse_backing *fuse_backing_get(struct fuse_backing *fb)
{}

static void fuse_backing_free(struct fuse_backing *fb)
{}

void fuse_backing_put(struct fuse_backing *fb)
{}

void fuse_backing_files_init(struct fuse_conn *fc)
{}

static int fuse_backing_id_alloc(struct fuse_conn *fc, struct fuse_backing *fb)
{}

static struct fuse_backing *fuse_backing_id_remove(struct fuse_conn *fc,
						   int id)
{}

static int fuse_backing_id_free(int id, void *p, void *data)
{}

void fuse_backing_files_free(struct fuse_conn *fc)
{}

int fuse_backing_open(struct fuse_conn *fc, struct fuse_backing_map *map)
{}

int fuse_backing_close(struct fuse_conn *fc, int backing_id)
{}

/*
 * Setup passthrough to a backing file.
 *
 * Returns an fb object with elevated refcount to be stored in fuse inode.
 */
struct fuse_backing *fuse_passthrough_open(struct file *file,
					   struct inode *inode,
					   int backing_id)
{}

void fuse_passthrough_release(struct fuse_file *ff, struct fuse_backing *fb)
{}