diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2008-07-25 04:49:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 13:53:48 -0400 |
commit | dbd561d236ff16f8143bc727d91758ddd190e8cb (patch) | |
tree | aac8fb4d98c3f425b2f5bf404af7d82182f19bc0 /fs/fuse/fuse_i.h | |
parent | 0de6256daafa3a97a269995e9b29f956bd419bbf (diff) |
fuse: add export operations
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: Miklos Szeredi <mszeredi@suse.cz>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index bae948657c4f..5d3146da64e6 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -464,6 +464,8 @@ static inline u64 get_node_id(struct inode *inode) | |||
464 | /** Device operations */ | 464 | /** Device operations */ |
465 | extern const struct file_operations fuse_dev_operations; | 465 | extern const struct file_operations fuse_dev_operations; |
466 | 466 | ||
467 | extern struct dentry_operations fuse_dentry_operations; | ||
468 | |||
467 | /** | 469 | /** |
468 | * Get a filled in inode | 470 | * Get a filled in inode |
469 | */ | 471 | */ |
@@ -604,6 +606,8 @@ void fuse_abort_conn(struct fuse_conn *fc); | |||
604 | */ | 606 | */ |
605 | void fuse_invalidate_attr(struct inode *inode); | 607 | void fuse_invalidate_attr(struct inode *inode); |
606 | 608 | ||
609 | void fuse_invalidate_entry_cache(struct dentry *entry); | ||
610 | |||
607 | /** | 611 | /** |
608 | * Acquire reference to fuse_conn | 612 | * Acquire reference to fuse_conn |
609 | */ | 613 | */ |