Skip to contentSkip to conversation

fs/Kconfig: more consistent configuration of XFS

PATCH In review aq 4 participants 10 messages Apr 28, 2005 – May 1, 2005

lore
Share & tools
lore

aq

author
#0 lore raw

PATCH 1/1 fs/Kconfig: more consistent configuration of XFS

hello,

At the moment, the configuration interface of Filesystem is not very consistent:

- All other filesystem configurations (like Reiserfs, JFS, ext3,...) is in fs/Kconfig, but only XFS is in a separate file fs/xfs/Kconfig
- All other filesystem configuration is processed in the same screen (using a kind of drop-down interface), but XFS configuration is done in a separate screen.

Here is the patch to fix the problem: it moves XFS configuration from fs/xfs/Kconfig to fs/Kconfig, makes it to do all the configuration in the same screen (by removing "menu" directive), and removes the unnecessary fs/xfs/Kconfig.

This patch is against 2.6.12-rc3. Please apply.

# diffstat makefile.fs.patch 
 Kconfig     |   82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 xfs/Kconfig |   85 ------------------------------------------------------------
 2 files changed, 81 insertions(+), 86 deletions(-)
2.6.12-rc3/fs/Kconfig +81 -1
diff -Nurp -X dontdiff-aq a/2.6.12-rc3/fs/Kconfig b/2.6.12-rc3/fs/Kconfig
@@ -304,7 +304,87 @@ config FS_POSIX_ACL
 	depends on EXT2_FS_POSIX_ACL || EXT3_FS_POSIX_ACL || JFS_POSIX_ACL || REISERFS_FS_POSIX_ACL || NFSD_V4
 	default y
 
-source "fs/xfs/Kconfig"
+config XFS_FS
+	tristate "XFS filesystem support"
+	select EXPORTFS if NFSD!=n
+	help
+	  XFS is a high performance journaling filesystem which originated
+	  on the SGI IRIX platform.  It is completely multi-threaded, can
+	  support large files and large filesystems, extended attributes,
+	  variable block sizes, is extent based, and makes extensive use of
+	  Btrees (directories, extents, free space) to aid both performance
+	  and scalability.
+
+	  Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
+	  for complete details.  This implementation is on-disk compatible
+	  with the IRIX version of XFS.
+
+	  To compile this file system support as a module, choose M here: the
+	  module will be called xfs.  Be aware, however, that if the file
+	  system of your root partition is compiled as a module, you'll need
+	  to use an initial ramdisk (initrd) to boot.
+
+config XFS_RT
+	bool "Realtime support (EXPERIMENTAL)"
+	depends on XFS_FS && EXPERIMENTAL
+	help
+	  If you say Y here you will be able to mount and use XFS filesystems
+	  which contain a realtime subvolume. The realtime subvolume is a
+	  separate area of disk space where only file data is stored. The
+	  realtime subvolume is designed to provide very deterministic
+	  data rates suitable for media streaming applications.
+
+	  See the xfs man page in section 5 for a bit more information.
+
+	  This feature is unsupported at this time, is not yet fully
+	  functional, and may cause serious problems.
+
+	  If unsure, say N.
+
+config XFS_QUOTA
+	bool "Quota support"
+	depends on XFS_FS
+	help
+	  If you say Y here, you will be able to set limits for disk usage on
+	  a per user and/or a per group basis under XFS.  XFS considers quota
+	  information as filesystem metadata and uses journaling to provide a
+	  higher level guarantee of consistency.  The on-disk data format for
+	  quota is also compatible with the IRIX version of XFS, allowing a
+	  filesystem to be migrated between Linux and IRIX without any need
+	  for conversion.
+
+	  If unsure, say N.  More comprehensive documentation can be found in
+	  README.quota in the xfsprogs package.  XFS quota can be used either
+	  with or without the generic quota support enabled (CONFIG_QUOTA) -
+	  they are completely independent subsystems.
+
+config XFS_SECURITY
+	bool "Security Label support"
+	depends on XFS_FS
+	help
+	  Security labels support alternative access control models
+	  implemented by security modules like SELinux.  This option
+	  enables an extended attribute namespace for inode security
+	  labels in the XFS filesystem.
+
+	  If you are not using a security module that requires using
+	  extended attributes for inode security labels, say N.
+
+config XFS_POSIX_ACL
+	bool "POSIX ACL support"
+	depends on XFS_FS
+	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 XFS_EXPORT
+	bool
+	default y if XFS_FS && EXPORTFS
 
 config MINIX_FS
 	tristate "Minix fs support"
2.6.12-rc3/fs/xfs/Kconfig +0 -85

85 lines not on this page · raw message

#1 lore raw
Quoted 4 lines · aq

Here is the patch to fix the problem: it moves XFS configuration from fs/xfs/Kconfig to fs/Kconfig, makes it to do all the configuration in the same screen (by removing "menu" directive), and removes the unnecessary fs/xfs/Kconfig.

XFS has several more configuration option not in the mainline tree. Doing this makes keeping things in sync harder.

#2 lore raw
In reply to aq
Quoted 10 lines · aq

hello,

At the moment, the configuration interface of Filesystem is not very consistent:

- All other filesystem configurations (like Reiserfs, JFS, ext3,...) is in fs/Kconfig, but only XFS is in a separate file fs/xfs/Kconfig
- All other filesystem configuration is processed in the same screen (using a kind of drop-down interface), but XFS configuration is done in a separate screen.

Quoted 4 lines

Here is the patch to fix the problem: it moves XFS configuration from fs/xfs/Kconfig to fs/Kconfig, makes it to do all the configuration in the same screen (by removing "menu" directive), and removes the unnecessary fs/xfs/Kconfig.

The screen bits is fine, btu please keep fs/xfs/Kconfig. It make maintaince a lot a easier for us XFS people.

author
#3 lore raw
Quoted 11 lines · Christoph Hellwig
Quoted 10 lines · aq

hello,

At the moment, the configuration interface of Filesystem is not very consistent:

- All other filesystem configurations (like Reiserfs, JFS, ext3,...) is in fs/Kconfig, but only XFS is in a separate file fs/xfs/Kconfig
- All other filesystem configuration is processed in the same screen (using a kind of drop-down interface), but XFS configuration is done in a separate screen.

Quoted 9 lines
Quoted 4 lines

Here is the patch to fix the problem: it moves XFS configuration from fs/xfs/Kconfig to fs/Kconfig, makes it to do all the configuration in the same screen (by removing "menu" directive), and removes the unnecessary fs/xfs/Kconfig.

The screen bits is fine, btu please keep fs/xfs/Kconfig. It make maintaince a lot a easier for us XFS people.

I dont see why we should keep a file in kernel tree without using it (since the patch removes "source xfs/Kconfig). Anyway, here is another patch that doesnt remove fs/xfs/Kconfig.

Also note that this patch (and the last one, too) moves "config XFS_EXPOR" to the bottom, so the menu intems aligns better and consistently with others (like what Reiserfs, JFS,... are doing)

Andrew, please pick one of these two. Thank you.

# diffstat makefile.fs2.patch 
 Kconfig |   82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 81 insertions(+), 1 deletion(-)
2.6.12-rc3/fs/Kconfig +81 -1
diff -Nurp -X dontdiff-aq a/2.6.12-rc3/fs/Kconfig b/2.6.12-rc3/fs/Kconfig
@@ -304,7 +304,87 @@ config FS_POSIX_ACL
 	depends on EXT2_FS_POSIX_ACL || EXT3_FS_POSIX_ACL || JFS_POSIX_ACL || REISERFS_FS_POSIX_ACL || NFSD_V4
 	default y
 
-source "fs/xfs/Kconfig"
+config XFS_FS
+	tristate "XFS filesystem support"
+	select EXPORTFS if NFSD!=n
+	help
+	  XFS is a high performance journaling filesystem which originated
+	  on the SGI IRIX platform.  It is completely multi-threaded, can
+	  support large files and large filesystems, extended attributes,
+	  variable block sizes, is extent based, and makes extensive use of
+	  Btrees (directories, extents, free space) to aid both performance
+	  and scalability.
+
+	  Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
+	  for complete details.  This implementation is on-disk compatible
+	  with the IRIX version of XFS.
+
+	  To compile this file system support as a module, choose M here: the
+	  module will be called xfs.  Be aware, however, that if the file
+	  system of your root partition is compiled as a module, you'll need
+	  to use an initial ramdisk (initrd) to boot.
+
+config XFS_RT
+	bool "Realtime support (EXPERIMENTAL)"
+	depends on XFS_FS && EXPERIMENTAL
+	help
+	  If you say Y here you will be able to mount and use XFS filesystems
+	  which contain a realtime subvolume. The realtime subvolume is a
+	  separate area of disk space where only file data is stored. The
+	  realtime subvolume is designed to provide very deterministic
+	  data rates suitable for media streaming applications.
+
+	  See the xfs man page in section 5 for a bit more information.
+
+	  This feature is unsupported at this time, is not yet fully
+	  functional, and may cause serious problems.
+
+	  If unsure, say N.
+
+config XFS_QUOTA
+	bool "Quota support"
+	depends on XFS_FS
+	help
+	  If you say Y here, you will be able to set limits for disk usage on
+	  a per user and/or a per group basis under XFS.  XFS considers quota
+	  information as filesystem metadata and uses journaling to provide a
+	  higher level guarantee of consistency.  The on-disk data format for
+	  quota is also compatible with the IRIX version of XFS, allowing a
+	  filesystem to be migrated between Linux and IRIX without any need
+	  for conversion.
+
+	  If unsure, say N.  More comprehensive documentation can be found in
+	  README.quota in the xfsprogs package.  XFS quota can be used either
+	  with or without the generic quota support enabled (CONFIG_QUOTA) -
+	  they are completely independent subsystems.
+
+config XFS_SECURITY
+	bool "Security Label support"
+	depends on XFS_FS
+	help
+	  Security labels support alternative access control models
+	  implemented by security modules like SELinux.  This option
+	  enables an extended attribute namespace for inode security
+	  labels in the XFS filesystem.
+
+	  If you are not using a security module that requires using
+	  extended attributes for inode security labels, say N.
+
+config XFS_POSIX_ACL
+	bool "POSIX ACL support"
+	depends on XFS_FS
+	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 XFS_EXPORT
+	bool
+	default y if XFS_FS && EXPORTFS
 
 config MINIX_FS
 	tristate "Minix fs support"
#4 lore raw
Quoted 3 lines · aq

I dont see why we should keep a file in kernel tree without using it (since the patch removes "source xfs/Kconfig). Anyway, here is another patch that doesnt remove fs/xfs/Kconfig.

No, you should not remove usage of it either.

author
#5 lore raw
Quoted 7 lines · Christoph Hellwig
Quoted 3 lines · aq

I dont see why we should keep a file in kernel tree without using it (since the patch removes "source xfs/Kconfig). Anyway, here is another patch that doesnt remove fs/xfs/Kconfig.

No, you should not remove usage of it either.

OK, here is another patch. It is up to Andrew to pick the approriate. But I still prefer the first patch, which provides both consistency in interface and configuration.

What this patch does:

- Remove "menu" directive from fs/xfs/Kconfig, so XFS configuration is done in the same screen as other filesystems.
- Move "config XFS_EXPORT " to the bottom, so the menu items aligns better and consistent with others.

# diffstat makefile.fs3.patch 
 Kconfig |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)
2.6.12-rc3/fs/xfs/Kconfig +4 -7
diff -Nurp -X dontdiff-aq a/2.6.12-rc3/fs/xfs/Kconfig c/2.6.12-rc3/fs/xfs/Kconfig
@@ -1,5 +1,3 @@
-menu "XFS support"
-
 config XFS_FS
 	tristate "XFS filesystem support"
 	select EXPORTFS if NFSD!=n
@@ -20,10 +18,6 @@ config XFS_FS
 	  system of your root partition is compiled as a module, you'll need
 	  to use an initial ramdisk (initrd) to boot.
 
-config XFS_EXPORT
-	bool
-	default y if XFS_FS && EXPORTFS
-
 config XFS_RT
 	bool "Realtime support (EXPERIMENTAL)"
 	depends on XFS_FS && EXPERIMENTAL
@@ -82,4 +76,7 @@ config XFS_POSIX_ACL
 
 	  If you don't know what Access Control Lists are, say N.
 
-endmenu
+config XFS_EXPORT
+	bool
+	default y if XFS_FS && EXPORTFS
+
#6 lore raw
Quoted 4 lines · aq

OK, here is another patch. It is up to Andrew to pick the approriate. But I still prefer the first patch, which provides both consistency in interface and configuration.

We shall do out best to distribute info to places where it belongs. A much better approch would be to move all ext2 + ext3 stuff out in their respective directories.
When modifying xfs (or ext2,ext3) no files outside their respective directories should in need to be touched - this would just impose additional burden doing parrallel development.

About your modifications:

Skipping the menu part is OK.
While you are modifying Kconfig in xfs/ put a

if XFS_FS
...
endif

around all config options expcept the one defining the XFS_FS option. This will fix menu identing.

Sam

author
#7 lore raw
Quoted 6 lines · Sam Ravnborg
Quoted 4 lines · aq

OK, here is another patch. It is up to Andrew to pick the approriate. But I still prefer the first patch, which provides both consistency in interface and configuration.

Quoted 6 lines

We shall do out best to distribute info to places where it belongs. A much better approch would be to move all ext2 + ext3 stuff out in their respective directories.
When modifying xfs (or ext2,ext3) no files outside their respective directories should in need to be touched - this would just impose additional burden doing parrallel development.

OK, I agree.

Quoted 6 lines

About your modifications:

Skipping the menu part is OK.
While you are modifying Kconfig in xfs/ put a

Quoted 6 lines

if XFS_FS
...
endif

around all config options expcept the one defining the XFS_FS option. This will fix menu identing.

Thanks for pointing this out. But the patch I posted is fair enough. It just move one menu item around, and change nothing else. Are you happy with it?

regards,
aq

#8 lore raw
Quoted 11 lines · aq
Quoted 11 lines

About your modifications:

Skipping the menu part is OK.
While you are modifying Kconfig in xfs/ put a

if XFS_FS
...
endif

Quoted 6 lines
Quoted 2 lines

around all config options expcept the one defining the XFS_FS option. This will fix menu identing.

Thanks for pointing this out. But the patch I posted is fair enough. It just move one menu item around, and change nothing else. Are you happy with it?

If indention is OK for all menu entries in XFS - yes. Otherwise not. I haven't tested it.

Sam

author
#9 lore raw
Quoted 12 lines · Sam Ravnborg
Quoted 11 lines · aq
Quoted 11 lines

About your modifications:

Skipping the menu part is OK.
While you are modifying Kconfig in xfs/ put a

if XFS_FS
...
endif

Quoted 7 lines
Quoted 6 lines
Quoted 2 lines

around all config options expcept the one defining the XFS_FS option. This will fix menu identing.

Thanks for pointing this out. But the patch I posted is fair enough. It just move one menu item around, and change nothing else. Are you happy with it?

If indention is OK for all menu entries in XFS - yes. Otherwise not.

I have tested it. Identation is fine.

regards,
aq