fuse: add export operations
Miklos Szeredi authored

Implement export_operations, to allow fuse filesystems to be exported to
NFS.  This feature has been in the out-of-tree fuse module, and is widely
used and tested.

It has not been originally merged into mainline, because doing the NFS
export in userspace was thought to be a cleaner and more efficient way of
doing it, than through the kernel.

While that is true, it would also have involved a lot of duplicated effort
at reimplementing NFS exporting (all the different versions of the
protocol).  This effort was unfortunately not undertaken by anyone, so we
are left with doing it the easy but less efficient way.

If this feature goes in, the out-of-tree fuse module can go away,
which would have several advantages:

  - not having to maintain two versions
  - less confusion for users
  - no bugs due to kernel API changes

Comment from hch:
 - Use the same fh_type values as XFS, since we use the same fh encoding.
Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
dbd561d2
Name Last commit Last update
..
9p 9p: fix O_APPEND in legacy mode
adfs fs: replace remaining __FUNCTION__ occurrences
affs [PATCH] fix reservation discarding in affs
afs Fix various old email addresses for dwmw2
autofs mount options: fix autofs
autofs4 autofs4: remove unused ioctls
befs byteorder: don't directly include linux/byteorder/generic.h
bfs fs: replace remaining __FUNCTION__ occurrences
cifs Merge commit 'v2.6.26' into bkl-removal
coda coda: remove CODA_FS_OLD_API
configfs configfs: Allow ->make_item() and ->make_group() to return detailed errors.
cramfs fs: Remove unnecessary inclusions of asm/semaphore.h
debugfs debugfs: Implement debugfs_remove_recursive()
devpts devpts: factor out PTY index allocation
dlm locks: add special return value for asynchronous locks
ecryptfs eCryptfs: Make all persistent file opens delayed
efs efs: update error msg to not refer to deleted read_inode()
exportfs fs: replace remaining __FUNCTION__ occurrences
ext2 quota: move function-macros from quota.h to quotaops.h
ext3 ext3: validate directory entry data before use
ext4 ext4: do not set extents feature from the kernel
fat fatfs: add UTC timestamp option
freevxfs fs/freevxfs/: proper externs
fuse fuse: add export operations
gfs2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd
jbd2
jffs2
jfs
lockd
minix
msdos
ncpfs
nfs
nfs_common
nfsd
nls
ntfs
ocfs2
openpromfs
partitions
proc
qnx4
ramfs
reiserfs
romfs
smbfs
sysfs
sysv
ubifs
udf
ufs
vfat
xfs
Kconfig
Kconfig.binfmt
Makefile
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
dcookies.c
direct-io.c
dnotify.c
dquot.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c
generic_acl.c
inode.c
inotify.c
inotify_user.c
internal.h
ioctl.c
ioprio.c
libfs.c
locks.c
mbcache.c
mpage.c
namei.c
namespace.c
nfsctl.c
no-block.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c
quota.c
quota_v1.c
quota_v2.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
super.c
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c