android_kernel_samsung_msm8976/fs/fuse/fuse_shortcircuit.h
Nikhilesh Reddy 03a09ae085 fuse: Add support for shortcircuited read/write for files
Add support for shortcircuited read/write for files
when enabled through a userspace init option of
FUSE_SHORTCIRCUIT.

When FUSE_SHORTCIRCUIT is enabled all the reads and writes
to the fuse mount point go directly to the native filesystem
rather than through the fuse daemon. All requsts that aren't
read/write still go thought the userspace code.

This allows for significantly better performance on read and writes
and the difference between fuse and the native lower filesystem is
negligible.

Change-Id: I8258f356963505a2f8499f38879e9e36aba43ad4
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
2016-02-04 13:23:34 +05:30

34 lines
1.1 KiB
C

/*
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef _FS_FUSE_SHORCIRCUIT_H
#define _FS_FUSE_SHORCIRCUIT_H
#include "fuse_i.h"
#include <linux/fuse.h>
#include <linux/file.h>
void fuse_setup_shortcircuit(struct fuse_conn *fc, struct fuse_req *req);
ssize_t fuse_shortcircuit_aio_read(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos);
ssize_t fuse_shortcircuit_aio_write(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos);
void fuse_shortcircuit_release(struct fuse_file *ff);
#endif /* _FS_FUSE_SHORCIRCUIT_H */