vfs,ext2: remove CONFIG_EXT2_FS_XIP and rename CONFIG_FS_XIP to CONFIG_FS_DAX
The fewer Kconfig options we have the better. Use the generic CONFIG_FS_DAX to enable XIP support in ext2 as well as in the core. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Cc: Andreas Dilger <andreas.dilger@intel.com> Cc: Boaz Harrosh <boaz@plexistor.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Dave Chinner <david@fromorbit.com> Cc: Jan Kara <jack@suse.cz> Cc: Jens Axboe <axboe@kernel.dk> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Ross Zwisler <ross.zwisler@linux.intel.com> Cc: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
07642381d5
commit
6cd176a51e
8 changed files with 21 additions and 26 deletions
21
fs/Kconfig
21
fs/Kconfig
|
@ -13,13 +13,6 @@ 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"
|
||||
|
||||
|
@ -40,6 +33,20 @@ source "fs/ocfs2/Kconfig"
|
|||
source "fs/btrfs/Kconfig"
|
||||
source "fs/nilfs2/Kconfig"
|
||||
|
||||
config FS_DAX
|
||||
bool "Direct Access (DAX) support"
|
||||
depends on MMU
|
||||
help
|
||||
Direct Access (DAX) can be used on memory-backed block devices.
|
||||
If the block device supports DAX and the filesystem supports DAX,
|
||||
then you can avoid using the pagecache to buffer I/Os. Turning
|
||||
on this option will compile in support for DAX; you will need to
|
||||
mount the filesystem using the -o dax option.
|
||||
|
||||
If you do not have a block device that is capable of using this,
|
||||
or if unsure, say N. Saying Y will increase the size of the kernel
|
||||
by about 5kB.
|
||||
|
||||
endif # BLOCK
|
||||
|
||||
# Posix ACL utility routines
|
||||
|
|
|
@ -28,7 +28,7 @@ obj-$(CONFIG_SIGNALFD) += signalfd.o
|
|||
obj-$(CONFIG_TIMERFD) += timerfd.o
|
||||
obj-$(CONFIG_EVENTFD) += eventfd.o
|
||||
obj-$(CONFIG_AIO) += aio.o
|
||||
obj-$(CONFIG_FS_XIP) += dax.o
|
||||
obj-$(CONFIG_FS_DAX) += dax.o
|
||||
obj-$(CONFIG_FILE_LOCKING) += locks.o
|
||||
obj-$(CONFIG_COMPAT) += compat.o compat_ioctl.o
|
||||
obj-$(CONFIG_BINFMT_AOUT) += binfmt_aout.o
|
||||
|
|
|
@ -42,14 +42,3 @@ config EXT2_FS_SECURITY
|
|||
|
||||
If you are not using a security module that requires using
|
||||
extended attributes for file security labels, say N.
|
||||
|
||||
config EXT2_FS_XIP
|
||||
bool "Ext2 execute in place support"
|
||||
depends on EXT2_FS && MMU
|
||||
help
|
||||
Execute in place can be used on memory-backed block devices. If you
|
||||
enable this option, you can select to mount block devices which are
|
||||
capable of this feature without using the page cache.
|
||||
|
||||
If you do not use a block device that is capable of using this,
|
||||
or if unsure, say N.
|
||||
|
|
|
@ -380,7 +380,7 @@ struct ext2_inode {
|
|||
#define EXT2_MOUNT_NO_UID32 0x000200 /* Disable 32-bit UIDs */
|
||||
#define EXT2_MOUNT_XATTR_USER 0x004000 /* Extended user attributes */
|
||||
#define EXT2_MOUNT_POSIX_ACL 0x008000 /* POSIX Access Control Lists */
|
||||
#ifdef CONFIG_FS_XIP
|
||||
#ifdef CONFIG_FS_DAX
|
||||
#define EXT2_MOUNT_XIP 0x010000 /* Execute in place */
|
||||
#else
|
||||
#define EXT2_MOUNT_XIP 0
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "xattr.h"
|
||||
#include "acl.h"
|
||||
|
||||
#ifdef CONFIG_EXT2_FS_XIP
|
||||
#ifdef CONFIG_FS_DAX
|
||||
static int ext2_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
{
|
||||
return dax_fault(vma, vmf, ext2_get_block);
|
||||
|
@ -108,7 +108,7 @@ const struct file_operations ext2_file_operations = {
|
|||
.splice_write = iter_file_splice_write,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_EXT2_FS_XIP
|
||||
#ifdef CONFIG_FS_DAX
|
||||
const struct file_operations ext2_xip_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
|
|
|
@ -291,7 +291,7 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
|
|||
seq_puts(seq, ",grpquota");
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_EXT2_FS_XIP)
|
||||
#ifdef CONFIG_FS_DAX
|
||||
if (sbi->s_mount_opt & EXT2_MOUNT_XIP)
|
||||
seq_puts(seq, ",xip");
|
||||
#endif
|
||||
|
@ -558,7 +558,7 @@ static int parse_options(char *options, struct super_block *sb)
|
|||
break;
|
||||
#endif
|
||||
case Opt_xip:
|
||||
#ifdef CONFIG_EXT2_FS_XIP
|
||||
#ifdef CONFIG_FS_DAX
|
||||
set_opt (sbi->s_mount_opt, XIP);
|
||||
#else
|
||||
ext2_msg(sb, KERN_INFO, "xip option not supported");
|
||||
|
|
|
@ -1676,7 +1676,7 @@ struct super_operations {
|
|||
#define S_IMA 1024 /* Inode has an associated IMA struct */
|
||||
#define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */
|
||||
#define S_NOSEC 4096 /* no suid or xattr security attributes */
|
||||
#ifdef CONFIG_FS_XIP
|
||||
#ifdef CONFIG_FS_DAX
|
||||
#define S_DAX 8192 /* Direct Access, avoiding the page cache */
|
||||
#else
|
||||
#define S_DAX 0 /* Make all the DAX code disappear */
|
||||
|
|
|
@ -28,7 +28,6 @@ If no config files are specified, .config and .config.old are used.
|
|||
Example usage:
|
||||
$ diffconfig .config config-with-some-changes
|
||||
-EXT2_FS_XATTR n
|
||||
-EXT2_FS_XIP n
|
||||
CRAMFS n -> y
|
||||
EXT2_FS y -> n
|
||||
LOG_BUF_SHIFT 14 -> 16
|
||||
|
|
Loading…
Reference in a new issue