mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
151060ac13
CUSE enables implementing character devices in userspace. With recent additions of ioctl and poll support, FUSE already has most of what's necessary to implement character devices. All CUSE has to do is bonding all those components - FUSE, chardev and the driver model - nicely. When client opens /dev/cuse, kernel starts conversation with CUSE_INIT. The client tells CUSE which device it wants to create. As the previous patch made fuse_file usable without associated fuse_inode, CUSE doesn't create super block or inodes. It attaches fuse_file to cdev file->private_data during open and set ff->fi to NULL. The rest of the operation is almost identical to FUSE direct IO case. Each CUSE device has a corresponding directory /sys/class/cuse/DEVNAME (which is symlink to /sys/devices/virtual/class/DEVNAME if SYSFS_DEPRECATED is turned off) which hosts "waiting" and "abort" among other things. Those two files have the same meaning as the FUSE control files. The only notable lacking feature compared to in-kernel implementation is mmap support. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
279 lines
6.4 KiB
Plaintext
279 lines
6.4 KiB
Plaintext
#
|
|
# File system configuration
|
|
#
|
|
|
|
menu "File systems"
|
|
|
|
if BLOCK
|
|
|
|
source "fs/ext2/Kconfig"
|
|
source "fs/ext3/Kconfig"
|
|
source "fs/ext4/Kconfig"
|
|
|
|
config FS_XIP
|
|
# execute in place
|
|
bool
|
|
depends on EXT2_FS_XIP
|
|
default y
|
|
|
|
source "fs/jbd/Kconfig"
|
|
source "fs/jbd2/Kconfig"
|
|
|
|
config FS_MBCACHE
|
|
# Meta block cache for Extended Attributes (ext2/ext3/ext4)
|
|
tristate
|
|
default y if EXT2_FS=y && EXT2_FS_XATTR
|
|
default y if EXT3_FS=y && EXT3_FS_XATTR
|
|
default y if EXT4_FS=y && EXT4_FS_XATTR
|
|
default m if EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR
|
|
|
|
source "fs/reiserfs/Kconfig"
|
|
source "fs/jfs/Kconfig"
|
|
|
|
config FS_POSIX_ACL
|
|
# Posix ACL utility routines (for now, only ext2/ext3/jfs/reiserfs/nfs4)
|
|
#
|
|
# NOTE: you can implement Posix ACLs without these helpers (XFS does).
|
|
# Never use this symbol for ifdefs.
|
|
#
|
|
bool
|
|
default n
|
|
|
|
config FILE_LOCKING
|
|
bool "Enable POSIX file locking API" if EMBEDDED
|
|
default y
|
|
help
|
|
This option enables standard file locking support, required
|
|
for filesystems like NFS and for the flock() system
|
|
call. Disabling this option saves about 11k.
|
|
|
|
source "fs/xfs/Kconfig"
|
|
source "fs/gfs2/Kconfig"
|
|
source "fs/ocfs2/Kconfig"
|
|
source "fs/btrfs/Kconfig"
|
|
|
|
endif # BLOCK
|
|
|
|
source "fs/notify/Kconfig"
|
|
|
|
source "fs/quota/Kconfig"
|
|
|
|
source "fs/autofs/Kconfig"
|
|
source "fs/autofs4/Kconfig"
|
|
source "fs/fuse/Kconfig"
|
|
|
|
config CUSE
|
|
tristate "Character device in Userpace support"
|
|
depends on FUSE_FS
|
|
help
|
|
This FUSE extension allows character devices to be
|
|
implemented in userspace.
|
|
|
|
If you want to develop or use userspace character device
|
|
based on CUSE, answer Y or M.
|
|
|
|
config GENERIC_ACL
|
|
bool
|
|
select FS_POSIX_ACL
|
|
|
|
menu "Caches"
|
|
|
|
source "fs/fscache/Kconfig"
|
|
source "fs/cachefiles/Kconfig"
|
|
|
|
endmenu
|
|
|
|
if BLOCK
|
|
menu "CD-ROM/DVD Filesystems"
|
|
|
|
source "fs/isofs/Kconfig"
|
|
source "fs/udf/Kconfig"
|
|
|
|
endmenu
|
|
endif # BLOCK
|
|
|
|
if BLOCK
|
|
menu "DOS/FAT/NT Filesystems"
|
|
|
|
source "fs/fat/Kconfig"
|
|
source "fs/ntfs/Kconfig"
|
|
|
|
endmenu
|
|
endif # BLOCK
|
|
|
|
menu "Pseudo filesystems"
|
|
|
|
source "fs/proc/Kconfig"
|
|
source "fs/sysfs/Kconfig"
|
|
|
|
config TMPFS
|
|
bool "Virtual memory file system support (former shm fs)"
|
|
help
|
|
Tmpfs is a file system which keeps all files in virtual memory.
|
|
|
|
Everything in tmpfs is temporary in the sense that no files will be
|
|
created on your hard drive. The files live in memory and swap
|
|
space. If you unmount a tmpfs instance, everything stored therein is
|
|
lost.
|
|
|
|
See <file:Documentation/filesystems/tmpfs.txt> for details.
|
|
|
|
config TMPFS_POSIX_ACL
|
|
bool "Tmpfs POSIX Access Control Lists"
|
|
depends on TMPFS
|
|
select GENERIC_ACL
|
|
help
|
|
POSIX Access Control Lists (ACLs) support permissions for users and
|
|
groups beyond the owner/group/world scheme.
|
|
|
|
To learn more about Access Control Lists, visit the POSIX ACLs for
|
|
Linux website <http://acl.bestbits.at/>.
|
|
|
|
If you don't know what Access Control Lists are, say N.
|
|
|
|
config HUGETLBFS
|
|
bool "HugeTLB file system support"
|
|
depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || \
|
|
(S390 && 64BIT) || BROKEN
|
|
help
|
|
hugetlbfs is a filesystem backing for HugeTLB pages, based on
|
|
ramfs. For architectures that support it, say Y here and read
|
|
<file:Documentation/vm/hugetlbpage.txt> for details.
|
|
|
|
If unsure, say N.
|
|
|
|
config HUGETLB_PAGE
|
|
def_bool HUGETLBFS
|
|
|
|
source "fs/configfs/Kconfig"
|
|
|
|
endmenu
|
|
|
|
menuconfig MISC_FILESYSTEMS
|
|
bool "Miscellaneous filesystems"
|
|
default y
|
|
---help---
|
|
Say Y here to get to see options for various miscellaneous
|
|
filesystems, such as filesystems that came from other
|
|
operating systems.
|
|
|
|
This option alone does not add any kernel code.
|
|
|
|
If you say N, all options in this submenu will be skipped and
|
|
disabled; if unsure, say Y here.
|
|
|
|
if MISC_FILESYSTEMS
|
|
|
|
source "fs/adfs/Kconfig"
|
|
source "fs/affs/Kconfig"
|
|
source "fs/ecryptfs/Kconfig"
|
|
source "fs/hfs/Kconfig"
|
|
source "fs/hfsplus/Kconfig"
|
|
source "fs/befs/Kconfig"
|
|
source "fs/bfs/Kconfig"
|
|
source "fs/efs/Kconfig"
|
|
source "fs/jffs2/Kconfig"
|
|
# UBIFS File system configuration
|
|
source "fs/ubifs/Kconfig"
|
|
source "fs/cramfs/Kconfig"
|
|
source "fs/squashfs/Kconfig"
|
|
source "fs/freevxfs/Kconfig"
|
|
source "fs/minix/Kconfig"
|
|
source "fs/omfs/Kconfig"
|
|
source "fs/hpfs/Kconfig"
|
|
source "fs/qnx4/Kconfig"
|
|
source "fs/romfs/Kconfig"
|
|
source "fs/sysv/Kconfig"
|
|
source "fs/ufs/Kconfig"
|
|
source "fs/exofs/Kconfig"
|
|
|
|
config NILFS2_FS
|
|
tristate "NILFS2 file system support (EXPERIMENTAL)"
|
|
depends on BLOCK && EXPERIMENTAL
|
|
select CRC32
|
|
help
|
|
NILFS2 is a log-structured file system (LFS) supporting continuous
|
|
snapshotting. In addition to versioning capability of the entire
|
|
file system, users can even restore files mistakenly overwritten or
|
|
destroyed just a few seconds ago. Since this file system can keep
|
|
consistency like conventional LFS, it achieves quick recovery after
|
|
system crashes.
|
|
|
|
NILFS2 creates a number of checkpoints every few seconds or per
|
|
synchronous write basis (unless there is no change). Users can
|
|
select significant versions among continuously created checkpoints,
|
|
and can change them into snapshots which will be preserved for long
|
|
periods until they are changed back to checkpoints. Each
|
|
snapshot is mountable as a read-only file system concurrently with
|
|
its writable mount, and this feature is convenient for online backup.
|
|
|
|
Some features including atime, extended attributes, and POSIX ACLs,
|
|
are not supported yet.
|
|
|
|
To compile this file system support as a module, choose M here: the
|
|
module will be called nilfs2. If unsure, say N.
|
|
|
|
endif # MISC_FILESYSTEMS
|
|
|
|
menuconfig NETWORK_FILESYSTEMS
|
|
bool "Network File Systems"
|
|
default y
|
|
depends on NET
|
|
---help---
|
|
Say Y here to get to see options for network filesystems and
|
|
filesystem-related networking code, such as NFS daemon and
|
|
RPCSEC security modules.
|
|
|
|
This option alone does not add any kernel code.
|
|
|
|
If you say N, all options in this submenu will be skipped and
|
|
disabled; if unsure, say Y here.
|
|
|
|
if NETWORK_FILESYSTEMS
|
|
|
|
source "fs/nfs/Kconfig"
|
|
source "fs/nfsd/Kconfig"
|
|
|
|
config LOCKD
|
|
tristate
|
|
|
|
config LOCKD_V4
|
|
bool
|
|
depends on NFSD_V3 || NFS_V3
|
|
default y
|
|
|
|
config EXPORTFS
|
|
tristate
|
|
|
|
config NFS_ACL_SUPPORT
|
|
tristate
|
|
select FS_POSIX_ACL
|
|
|
|
config NFS_COMMON
|
|
bool
|
|
depends on NFSD || NFS_FS
|
|
default y
|
|
|
|
source "net/sunrpc/Kconfig"
|
|
source "fs/smbfs/Kconfig"
|
|
source "fs/cifs/Kconfig"
|
|
source "fs/ncpfs/Kconfig"
|
|
source "fs/coda/Kconfig"
|
|
source "fs/afs/Kconfig"
|
|
source "fs/9p/Kconfig"
|
|
|
|
endif # NETWORK_FILESYSTEMS
|
|
|
|
if BLOCK
|
|
menu "Partition Types"
|
|
|
|
source "fs/partitions/Kconfig"
|
|
|
|
endmenu
|
|
endif
|
|
|
|
source "fs/nls/Kconfig"
|
|
source "fs/dlm/Kconfig"
|
|
|
|
endmenu
|