All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mingming Cao <cmm@us.ibm.com>
To: akpm@osdl.org
Cc: linux-kernel@vger.kernel.org, ext2-devel@lists.sourceforge.net,
	linux-fsdevel@vger.kernel.org
Subject: [PATCH 2/5] Register ext3dev filesystem
Date: Wed, 09 Aug 2006 18:17:22 -0700	[thread overview]
Message-ID: <1155172642.3161.74.camel@localhost.localdomain> (raw)


Register ext4 filesystem as ext3dev filesystem in kernel.

Signed-Off-By: Mingming Cao<cmm@us.ibm.com>


---

 linux-2.6.18-rc4-ming/fs/Kconfig                |   74 ++++++++++++++++++++++--
 linux-2.6.18-rc4-ming/fs/Makefile               |    1 
 linux-2.6.18-rc4-ming/fs/ext4/Makefile          |   10 +--
 linux-2.6.18-rc4-ming/fs/ext4/acl.h             |    6 -
 linux-2.6.18-rc4-ming/fs/ext4/file.c            |    2 
 linux-2.6.18-rc4-ming/fs/ext4/inode.c           |    2 
 linux-2.6.18-rc4-ming/fs/ext4/namei.c           |    6 -
 linux-2.6.18-rc4-ming/fs/ext4/super.c           |   20 +++---
 linux-2.6.18-rc4-ming/fs/ext4/symlink.c         |    4 -
 linux-2.6.18-rc4-ming/fs/ext4/xattr.c           |    8 +-
 linux-2.6.18-rc4-ming/fs/ext4/xattr.h           |    8 +-
 linux-2.6.18-rc4-ming/include/linux/ext4_fs_i.h |    4 -
 12 files changed, 106 insertions(+), 39 deletions(-)

diff -puN fs/ext4/super.c~register-ext3dev fs/ext4/super.c
--- linux-2.6.18-rc4/fs/ext4/super.c~register-ext3dev	2006-08-09 15:41:29.273105685 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/super.c	2006-08-09 15:41:29.317106042 -0700
@@ -447,7 +447,7 @@ static struct inode *ext4_alloc_inode(st
 	ei = kmem_cache_alloc(ext4_inode_cachep, SLAB_NOFS);
 	if (!ei)
 		return NULL;
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	ei->i_acl = EXT4_ACL_NOT_CACHED;
 	ei->i_default_acl = EXT4_ACL_NOT_CACHED;
 #endif
@@ -468,7 +468,7 @@ static void init_once(void * foo, kmem_c
 	if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
 	    SLAB_CTOR_CONSTRUCTOR) {
 		INIT_LIST_HEAD(&ei->i_orphan);
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		init_rwsem(&ei->xattr_sem);
 #endif
 		mutex_init(&ei->truncate_mutex);
@@ -497,7 +497,7 @@ static void destroy_inodecache(void)
 static void ext4_clear_inode(struct inode *inode)
 {
 	struct ext4_block_alloc_info *rsv = EXT4_I(inode)->i_block_alloc_info;
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	if (EXT4_I(inode)->i_acl &&
 			EXT4_I(inode)->i_acl != EXT4_ACL_NOT_CACHED) {
 		posix_acl_release(EXT4_I(inode)->i_acl);
@@ -790,7 +790,7 @@ static int parse_options (char *options,
 		case Opt_orlov:
 			clear_opt (sbi->s_mount_opt, OLDALLOC);
 			break;
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		case Opt_user_xattr:
 			set_opt (sbi->s_mount_opt, XATTR_USER);
 			break;
@@ -803,7 +803,7 @@ static int parse_options (char *options,
 			printk("EXT4 (no)user_xattr options not supported\n");
 			break;
 #endif
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 		case Opt_acl:
 			set_opt(sbi->s_mount_opt, POSIX_ACL);
 			break;
@@ -2669,9 +2669,9 @@ static int ext4_get_sb(struct file_syste
 	return get_sb_bdev(fs_type, flags, dev_name, data, ext4_fill_super, mnt);
 }
 
-static struct file_system_type ext4_fs_type = {
+static struct file_system_type ext3dev_fs_type = {
 	.owner		= THIS_MODULE,
-	.name		= "ext4",
+	.name		= "ext3dev",
 	.get_sb		= ext4_get_sb,
 	.kill_sb	= kill_block_super,
 	.fs_flags	= FS_REQUIRES_DEV,
@@ -2685,7 +2685,7 @@ static int __init init_ext4_fs(void)
 	err = init_inodecache();
 	if (err)
 		goto out1;
-        err = register_filesystem(&ext4_fs_type);
+        err = register_filesystem(&ext3dev_fs_type);
 	if (err)
 		goto out;
 	return 0;
@@ -2698,13 +2698,13 @@ out1:
 
 static void __exit exit_ext4_fs(void)
 {
-	unregister_filesystem(&ext4_fs_type);
+	unregister_filesystem(&ext3dev_fs_type);
 	destroy_inodecache();
 	exit_ext4_xattr();
 }
 
 MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
-MODULE_DESCRIPTION("Second Extended Filesystem with journaling extensions");
+MODULE_DESCRIPTION("Fourth Extended Filesystem with extents");
 MODULE_LICENSE("GPL");
 module_init(init_ext4_fs)
 module_exit(exit_ext4_fs)
diff -puN fs/Kconfig~register-ext3dev fs/Kconfig
--- linux-2.6.18-rc4/fs/Kconfig~register-ext3dev	2006-08-09 15:41:29.277105718 -0700
+++ linux-2.6.18-rc4-ming/fs/Kconfig	2006-08-09 15:41:29.321106074 -0700
@@ -138,6 +138,72 @@ config EXT3_FS_SECURITY
 	  If you are not using a security module that requires using
 	  extended attributes for file security labels, say N.
 
+config EXT3DEV_FS
+	tristate "Developmenting extended fs support"
+	select JBD
+	help
+	  Ext3dev is a precede filesystem toward next generation
+	  of extended fs, based on ext3 filesystem code. It will be
+	  renamed ext4 fs later once this ext3dev is mature and stabled.
+
+	  Unlike the change from ext2 filesystem to ext3 filesystem,
+	  the on-disk format of ext3dev is not the same as ext3 any more:
+	  it is based on extent maps and it support 48 bit physical block
+	  numbers. These combined on-disk format changes will allow
+	  ext3dev/ext4 to handle more than 16TB filesystem volume --
+	  a hard limit that ext3 can not overcome without changing
+	  on-disk format.
+
+	  Other than extent maps and 48 bit block number, ext3dev also is
+	  likely to have other new features such as persistent preallocation,
+	  high resolution time stamps and larger file support etc.  These
+	  features will be added to ext3dev gradually.
+
+	  To compile this file system support as a module, choose M here: the
+	  module will be called ext2.  Be aware however that the file system
+	  of your root partition (the one containing the directory /) cannot
+	  be compiled as a module, and so this could be dangerous.
+
+	  If unsure, say N.
+
+config EXT3DEV_FS_XATTR
+	bool "Ext3dev extended attributes"
+	depends on EXT3DEV_FS
+	default y
+	help
+	  Extended attributes are name:value pairs associated with inodes by
+	  the kernel or by users (see the attr(5) manual page, or visit
+	  <http://acl.bestbits.at/> for details).
+
+	  If unsure, say N.
+
+	  You need this for POSIX ACL support on ext3.
+
+config EXT3DEV_FS_POSIX_ACL
+	bool "Ext3dev POSIX Access Control Lists"
+	depends on EXT3DEV_FS_XATTR
+	select FS_POSIX_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 EXT3DEV_FS_SECURITY
+	bool "Ext3dev Security Labels"
+	depends on EXT3DEV_FS_XATTR
+	help
+	  Security labels support alternative access control models
+	  implemented by security modules like SELinux.  This option
+	  enables an extended attribute handler for file security
+	  labels in the ext3 filesystem.
+
+	  If you are not using a security module that requires using
+	  extended attributes for file security labels, say N.
+
 config JBD
 	tristate
 	help
@@ -171,11 +237,11 @@ config JBD_DEBUG
 	  "echo 0 > /proc/sys/fs/jbd-debug".
 
 config FS_MBCACHE
-# Meta block cache for Extended Attributes (ext2/ext3)
+# Meta block cache for Extended Attributes (ext2/ext3/ext4)
 	tristate
-	depends on EXT2_FS_XATTR || EXT3_FS_XATTR
-	default y if EXT2_FS=y || EXT3_FS=y
-	default m if EXT2_FS=m || EXT3_FS=m
+	depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT3DEV_FS_XATTR
+	default y if EXT2_FS=y || EXT3_FS=y || EXT3DEV_FS=y
+	default m if EXT2_FS=m || EXT3_FS=m || EXT3DEV_FS=m
 
 config REISERFS_FS
 	tristate "Reiserfs support"
diff -puN fs/Makefile~register-ext3dev fs/Makefile
--- linux-2.6.18-rc4/fs/Makefile~register-ext3dev	2006-08-09 15:41:29.280105742 -0700
+++ linux-2.6.18-rc4-ming/fs/Makefile	2006-08-09 15:41:29.322106082 -0700
@@ -54,6 +54,7 @@ obj-$(CONFIG_PROFILING)		+= dcookies.o
 # Do not add any filesystems before this line
 obj-$(CONFIG_REISERFS_FS)	+= reiserfs/
 obj-$(CONFIG_EXT3_FS)		+= ext3/ # Before ext2 so root fs can be ext3
+obj-$(CONFIG_EXT3DEV_FS)	+= ext4/ # Before ext2 so root fs can be ext3dev
 obj-$(CONFIG_JBD)		+= jbd/
 obj-$(CONFIG_EXT2_FS)		+= ext2/
 obj-$(CONFIG_CRAMFS)		+= cramfs/
diff -puN include/linux/ext4_fs_i.h~register-ext3dev include/linux/ext4_fs_i.h
--- linux-2.6.18-rc4/include/linux/ext4_fs_i.h~register-ext3dev	2006-08-09 15:41:29.284105775 -0700
+++ linux-2.6.18-rc4-ming/include/linux/ext4_fs_i.h	2006-08-09 15:41:29.323106090 -0700
@@ -93,7 +93,7 @@ struct ext4_inode_info {
 	struct ext4_block_alloc_info *i_block_alloc_info;
 
 	__u32	i_dir_start_lookup;
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	/*
 	 * Extended attributes can be read independently of the main file
 	 * data. Taking i_mutex even when reading would cause contention
@@ -103,7 +103,7 @@ struct ext4_inode_info {
 	 */
 	struct rw_semaphore xattr_sem;
 #endif
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	struct posix_acl	*i_acl;
 	struct posix_acl	*i_default_acl;
 #endif
diff -puN fs/ext4/acl.h~register-ext3dev fs/ext4/acl.h
--- linux-2.6.18-rc4/fs/ext4/acl.h~register-ext3dev	2006-08-09 15:41:29.287105799 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/acl.h	2006-08-09 15:41:29.323106090 -0700
@@ -51,7 +51,7 @@ static inline int ext4_acl_count(size_t 
 	}
 }
 
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 
 /* Value for inode->u.ext4_i.i_acl and inode->u.ext4_i.i_default_acl
    if the ACL has not been cached */
@@ -62,7 +62,7 @@ extern int ext4_permission (struct inode
 extern int ext4_acl_chmod (struct inode *);
 extern int ext4_init_acl (handle_t *, struct inode *, struct inode *);
 
-#else  /* CONFIG_EXT4_FS_POSIX_ACL */
+#else  /* CONFIG_EXT3DEV_FS_POSIX_ACL */
 #include <linux/sched.h>
 #define ext4_permission NULL
 
@@ -77,5 +77,5 @@ ext4_init_acl(handle_t *handle, struct i
 {
 	return 0;
 }
-#endif  /* CONFIG_EXT4_FS_POSIX_ACL */
+#endif  /* CONFIG_EXT3DEV_FS_POSIX_ACL */
 
diff -puN fs/ext4/file.c~register-ext3dev fs/ext4/file.c
--- linux-2.6.18-rc4/fs/ext4/file.c~register-ext3dev	2006-08-09 15:41:29.290105823 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/file.c	2006-08-09 15:41:29.324106098 -0700
@@ -126,7 +126,7 @@ const struct file_operations ext4_file_o
 struct inode_operations ext4_file_inode_operations = {
 	.truncate	= ext4_truncate,
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/inode.c~register-ext3dev fs/ext4/inode.c
--- linux-2.6.18-rc4/fs/ext4/inode.c~register-ext3dev	2006-08-09 15:41:29.294105856 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/inode.c	2006-08-09 15:41:29.329106139 -0700
@@ -2584,7 +2584,7 @@ void ext4_read_inode(struct inode * inod
 	struct buffer_head *bh;
 	int block;
 
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	ei->i_acl = EXT4_ACL_NOT_CACHED;
 	ei->i_default_acl = EXT4_ACL_NOT_CACHED;
 #endif
diff -puN fs/ext4/namei.c~register-ext3dev fs/ext4/namei.c
--- linux-2.6.18-rc4/fs/ext4/namei.c~register-ext3dev	2006-08-09 15:41:29.298105888 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/namei.c	2006-08-09 15:41:29.332106163 -0700
@@ -1689,7 +1689,7 @@ retry:
 	err = PTR_ERR(inode);
 	if (!IS_ERR(inode)) {
 		init_special_inode(inode, inode->i_mode, rdev);
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		inode->i_op = &ext4_special_inode_operations;
 #endif
 		err = ext4_add_nondir(handle, dentry, inode);
@@ -2364,7 +2364,7 @@ struct inode_operations ext4_dir_inode_o
 	.mknod		= ext4_mknod,
 	.rename		= ext4_rename,
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
@@ -2375,7 +2375,7 @@ struct inode_operations ext4_dir_inode_o
 
 struct inode_operations ext4_special_inode_operations = {
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/symlink.c~register-ext3dev fs/ext4/symlink.c
--- linux-2.6.18-rc4/fs/ext4/symlink.c~register-ext3dev	2006-08-09 15:41:29.301105912 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/symlink.c	2006-08-09 15:41:29.333106171 -0700
@@ -34,7 +34,7 @@ struct inode_operations ext4_symlink_ino
 	.readlink	= generic_readlink,
 	.follow_link	= page_follow_link_light,
 	.put_link	= page_put_link,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
@@ -45,7 +45,7 @@ struct inode_operations ext4_symlink_ino
 struct inode_operations ext4_fast_symlink_inode_operations = {
 	.readlink	= generic_readlink,
 	.follow_link	= ext4_follow_link,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/xattr.c~register-ext3dev fs/ext4/xattr.c
--- linux-2.6.18-rc4/fs/ext4/xattr.c~register-ext3dev	2006-08-09 15:41:29.304105937 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/xattr.c	2006-08-09 15:41:29.335106188 -0700
@@ -104,12 +104,12 @@ static struct mb_cache *ext4_xattr_cache
 
 static struct xattr_handler *ext4_xattr_handler_map[] = {
 	[EXT4_XATTR_INDEX_USER]		     = &ext4_xattr_user_handler,
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	[EXT4_XATTR_INDEX_POSIX_ACL_ACCESS]  = &ext4_xattr_acl_access_handler,
 	[EXT4_XATTR_INDEX_POSIX_ACL_DEFAULT] = &ext4_xattr_acl_default_handler,
 #endif
 	[EXT4_XATTR_INDEX_TRUSTED]	     = &ext4_xattr_trusted_handler,
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 	[EXT4_XATTR_INDEX_SECURITY]	     = &ext4_xattr_security_handler,
 #endif
 };
@@ -117,11 +117,11 @@ static struct xattr_handler *ext4_xattr_
 struct xattr_handler *ext4_xattr_handlers[] = {
 	&ext4_xattr_user_handler,
 	&ext4_xattr_trusted_handler,
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	&ext4_xattr_acl_access_handler,
 	&ext4_xattr_acl_default_handler,
 #endif
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 	&ext4_xattr_security_handler,
 #endif
 	NULL
diff -puN fs/ext4/xattr.h~register-ext3dev fs/ext4/xattr.h
--- linux-2.6.18-rc4/fs/ext4/xattr.h~register-ext3dev	2006-08-09 15:41:29.307105961 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/xattr.h	2006-08-09 15:41:29.336106196 -0700
@@ -56,7 +56,7 @@ struct ext4_xattr_entry {
 #define EXT4_XATTR_SIZE(size) \
 	(((size) + EXT4_XATTR_ROUND) & ~EXT4_XATTR_ROUND)
 
-# ifdef CONFIG_EXT4_FS_XATTR
+# ifdef CONFIG_EXT3DEV_FS_XATTR
 
 extern struct xattr_handler ext4_xattr_user_handler;
 extern struct xattr_handler ext4_xattr_trusted_handler;
@@ -79,7 +79,7 @@ extern void exit_ext4_xattr(void);
 
 extern struct xattr_handler *ext4_xattr_handlers[];
 
-# else  /* CONFIG_EXT4_FS_XATTR */
+# else  /* CONFIG_EXT3DEV_FS_XATTR */
 
 static inline int
 ext4_xattr_get(struct inode *inode, int name_index, const char *name,
@@ -131,9 +131,9 @@ exit_ext4_xattr(void)
 
 #define ext4_xattr_handlers	NULL
 
-# endif  /* CONFIG_EXT4_FS_XATTR */
+# endif  /* CONFIG_EXT3DEV_FS_XATTR */
 
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 extern int ext4_init_security(handle_t *handle, struct inode *inode,
 				struct inode *dir);
 #else
diff -puN fs/ext4/Makefile~register-ext3dev fs/ext4/Makefile
--- linux-2.6.18-rc4/fs/ext4/Makefile~register-ext3dev	2006-08-09 15:41:29.310105985 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/Makefile	2006-08-09 15:41:29.336106196 -0700
@@ -2,11 +2,11 @@
 # Makefile for the linux ext4-filesystem routines.
 #
 
-obj-$(CONFIG_EXT4_FS) += ext4.o
+obj-$(CONFIG_EXT3DEV_FS) += ext3dev.o
 
-ext4-y	:= balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
+ext3dev-y	:= balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
 	   ioctl.o namei.o super.o symlink.o hash.o resize.o
 
-ext4-$(CONFIG_EXT4_FS_XATTR)	 += xattr.o xattr_user.o xattr_trusted.o
-ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o
-ext4-$(CONFIG_EXT4_FS_SECURITY)	 += xattr_security.o
+ext3dev-$(CONFIG_EXT3DEV_FS_XATTR)	+= xattr.o xattr_user.o xattr_trusted.o
+ext3dev-$(CONFIG_EXT3DEV_FS_POSIX_ACL)	+= acl.o
+ext3dev-$(CONFIG_EXT3DEV_FS_SECURITY)	+= xattr_security.o

_



WARNING: multiple messages have this Message-ID (diff)
From: Mingming Cao <cmm@us.ibm.com>
To: akpm@osdl.org
Cc: linux-fsdevel@vger.kernel.org, ext2-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: [PATCH 2/5] Register ext3dev filesystem
Date: Wed, 09 Aug 2006 18:17:22 -0700	[thread overview]
Message-ID: <1155172642.3161.74.camel@localhost.localdomain> (raw)


Register ext4 filesystem as ext3dev filesystem in kernel.

Signed-Off-By: Mingming Cao<cmm@us.ibm.com>


---

 linux-2.6.18-rc4-ming/fs/Kconfig                |   74 ++++++++++++++++++++++--
 linux-2.6.18-rc4-ming/fs/Makefile               |    1 
 linux-2.6.18-rc4-ming/fs/ext4/Makefile          |   10 +--
 linux-2.6.18-rc4-ming/fs/ext4/acl.h             |    6 -
 linux-2.6.18-rc4-ming/fs/ext4/file.c            |    2 
 linux-2.6.18-rc4-ming/fs/ext4/inode.c           |    2 
 linux-2.6.18-rc4-ming/fs/ext4/namei.c           |    6 -
 linux-2.6.18-rc4-ming/fs/ext4/super.c           |   20 +++---
 linux-2.6.18-rc4-ming/fs/ext4/symlink.c         |    4 -
 linux-2.6.18-rc4-ming/fs/ext4/xattr.c           |    8 +-
 linux-2.6.18-rc4-ming/fs/ext4/xattr.h           |    8 +-
 linux-2.6.18-rc4-ming/include/linux/ext4_fs_i.h |    4 -
 12 files changed, 106 insertions(+), 39 deletions(-)

diff -puN fs/ext4/super.c~register-ext3dev fs/ext4/super.c
--- linux-2.6.18-rc4/fs/ext4/super.c~register-ext3dev	2006-08-09 15:41:29.273105685 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/super.c	2006-08-09 15:41:29.317106042 -0700
@@ -447,7 +447,7 @@ static struct inode *ext4_alloc_inode(st
 	ei = kmem_cache_alloc(ext4_inode_cachep, SLAB_NOFS);
 	if (!ei)
 		return NULL;
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	ei->i_acl = EXT4_ACL_NOT_CACHED;
 	ei->i_default_acl = EXT4_ACL_NOT_CACHED;
 #endif
@@ -468,7 +468,7 @@ static void init_once(void * foo, kmem_c
 	if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
 	    SLAB_CTOR_CONSTRUCTOR) {
 		INIT_LIST_HEAD(&ei->i_orphan);
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		init_rwsem(&ei->xattr_sem);
 #endif
 		mutex_init(&ei->truncate_mutex);
@@ -497,7 +497,7 @@ static void destroy_inodecache(void)
 static void ext4_clear_inode(struct inode *inode)
 {
 	struct ext4_block_alloc_info *rsv = EXT4_I(inode)->i_block_alloc_info;
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	if (EXT4_I(inode)->i_acl &&
 			EXT4_I(inode)->i_acl != EXT4_ACL_NOT_CACHED) {
 		posix_acl_release(EXT4_I(inode)->i_acl);
@@ -790,7 +790,7 @@ static int parse_options (char *options,
 		case Opt_orlov:
 			clear_opt (sbi->s_mount_opt, OLDALLOC);
 			break;
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		case Opt_user_xattr:
 			set_opt (sbi->s_mount_opt, XATTR_USER);
 			break;
@@ -803,7 +803,7 @@ static int parse_options (char *options,
 			printk("EXT4 (no)user_xattr options not supported\n");
 			break;
 #endif
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 		case Opt_acl:
 			set_opt(sbi->s_mount_opt, POSIX_ACL);
 			break;
@@ -2669,9 +2669,9 @@ static int ext4_get_sb(struct file_syste
 	return get_sb_bdev(fs_type, flags, dev_name, data, ext4_fill_super, mnt);
 }
 
-static struct file_system_type ext4_fs_type = {
+static struct file_system_type ext3dev_fs_type = {
 	.owner		= THIS_MODULE,
-	.name		= "ext4",
+	.name		= "ext3dev",
 	.get_sb		= ext4_get_sb,
 	.kill_sb	= kill_block_super,
 	.fs_flags	= FS_REQUIRES_DEV,
@@ -2685,7 +2685,7 @@ static int __init init_ext4_fs(void)
 	err = init_inodecache();
 	if (err)
 		goto out1;
-        err = register_filesystem(&ext4_fs_type);
+        err = register_filesystem(&ext3dev_fs_type);
 	if (err)
 		goto out;
 	return 0;
@@ -2698,13 +2698,13 @@ out1:
 
 static void __exit exit_ext4_fs(void)
 {
-	unregister_filesystem(&ext4_fs_type);
+	unregister_filesystem(&ext3dev_fs_type);
 	destroy_inodecache();
 	exit_ext4_xattr();
 }
 
 MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
-MODULE_DESCRIPTION("Second Extended Filesystem with journaling extensions");
+MODULE_DESCRIPTION("Fourth Extended Filesystem with extents");
 MODULE_LICENSE("GPL");
 module_init(init_ext4_fs)
 module_exit(exit_ext4_fs)
diff -puN fs/Kconfig~register-ext3dev fs/Kconfig
--- linux-2.6.18-rc4/fs/Kconfig~register-ext3dev	2006-08-09 15:41:29.277105718 -0700
+++ linux-2.6.18-rc4-ming/fs/Kconfig	2006-08-09 15:41:29.321106074 -0700
@@ -138,6 +138,72 @@ config EXT3_FS_SECURITY
 	  If you are not using a security module that requires using
 	  extended attributes for file security labels, say N.
 
+config EXT3DEV_FS
+	tristate "Developmenting extended fs support"
+	select JBD
+	help
+	  Ext3dev is a precede filesystem toward next generation
+	  of extended fs, based on ext3 filesystem code. It will be
+	  renamed ext4 fs later once this ext3dev is mature and stabled.
+
+	  Unlike the change from ext2 filesystem to ext3 filesystem,
+	  the on-disk format of ext3dev is not the same as ext3 any more:
+	  it is based on extent maps and it support 48 bit physical block
+	  numbers. These combined on-disk format changes will allow
+	  ext3dev/ext4 to handle more than 16TB filesystem volume --
+	  a hard limit that ext3 can not overcome without changing
+	  on-disk format.
+
+	  Other than extent maps and 48 bit block number, ext3dev also is
+	  likely to have other new features such as persistent preallocation,
+	  high resolution time stamps and larger file support etc.  These
+	  features will be added to ext3dev gradually.
+
+	  To compile this file system support as a module, choose M here: the
+	  module will be called ext2.  Be aware however that the file system
+	  of your root partition (the one containing the directory /) cannot
+	  be compiled as a module, and so this could be dangerous.
+
+	  If unsure, say N.
+
+config EXT3DEV_FS_XATTR
+	bool "Ext3dev extended attributes"
+	depends on EXT3DEV_FS
+	default y
+	help
+	  Extended attributes are name:value pairs associated with inodes by
+	  the kernel or by users (see the attr(5) manual page, or visit
+	  <http://acl.bestbits.at/> for details).
+
+	  If unsure, say N.
+
+	  You need this for POSIX ACL support on ext3.
+
+config EXT3DEV_FS_POSIX_ACL
+	bool "Ext3dev POSIX Access Control Lists"
+	depends on EXT3DEV_FS_XATTR
+	select FS_POSIX_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 EXT3DEV_FS_SECURITY
+	bool "Ext3dev Security Labels"
+	depends on EXT3DEV_FS_XATTR
+	help
+	  Security labels support alternative access control models
+	  implemented by security modules like SELinux.  This option
+	  enables an extended attribute handler for file security
+	  labels in the ext3 filesystem.
+
+	  If you are not using a security module that requires using
+	  extended attributes for file security labels, say N.
+
 config JBD
 	tristate
 	help
@@ -171,11 +237,11 @@ config JBD_DEBUG
 	  "echo 0 > /proc/sys/fs/jbd-debug".
 
 config FS_MBCACHE
-# Meta block cache for Extended Attributes (ext2/ext3)
+# Meta block cache for Extended Attributes (ext2/ext3/ext4)
 	tristate
-	depends on EXT2_FS_XATTR || EXT3_FS_XATTR
-	default y if EXT2_FS=y || EXT3_FS=y
-	default m if EXT2_FS=m || EXT3_FS=m
+	depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT3DEV_FS_XATTR
+	default y if EXT2_FS=y || EXT3_FS=y || EXT3DEV_FS=y
+	default m if EXT2_FS=m || EXT3_FS=m || EXT3DEV_FS=m
 
 config REISERFS_FS
 	tristate "Reiserfs support"
diff -puN fs/Makefile~register-ext3dev fs/Makefile
--- linux-2.6.18-rc4/fs/Makefile~register-ext3dev	2006-08-09 15:41:29.280105742 -0700
+++ linux-2.6.18-rc4-ming/fs/Makefile	2006-08-09 15:41:29.322106082 -0700
@@ -54,6 +54,7 @@ obj-$(CONFIG_PROFILING)		+= dcookies.o
 # Do not add any filesystems before this line
 obj-$(CONFIG_REISERFS_FS)	+= reiserfs/
 obj-$(CONFIG_EXT3_FS)		+= ext3/ # Before ext2 so root fs can be ext3
+obj-$(CONFIG_EXT3DEV_FS)	+= ext4/ # Before ext2 so root fs can be ext3dev
 obj-$(CONFIG_JBD)		+= jbd/
 obj-$(CONFIG_EXT2_FS)		+= ext2/
 obj-$(CONFIG_CRAMFS)		+= cramfs/
diff -puN include/linux/ext4_fs_i.h~register-ext3dev include/linux/ext4_fs_i.h
--- linux-2.6.18-rc4/include/linux/ext4_fs_i.h~register-ext3dev	2006-08-09 15:41:29.284105775 -0700
+++ linux-2.6.18-rc4-ming/include/linux/ext4_fs_i.h	2006-08-09 15:41:29.323106090 -0700
@@ -93,7 +93,7 @@ struct ext4_inode_info {
 	struct ext4_block_alloc_info *i_block_alloc_info;
 
 	__u32	i_dir_start_lookup;
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	/*
 	 * Extended attributes can be read independently of the main file
 	 * data. Taking i_mutex even when reading would cause contention
@@ -103,7 +103,7 @@ struct ext4_inode_info {
 	 */
 	struct rw_semaphore xattr_sem;
 #endif
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	struct posix_acl	*i_acl;
 	struct posix_acl	*i_default_acl;
 #endif
diff -puN fs/ext4/acl.h~register-ext3dev fs/ext4/acl.h
--- linux-2.6.18-rc4/fs/ext4/acl.h~register-ext3dev	2006-08-09 15:41:29.287105799 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/acl.h	2006-08-09 15:41:29.323106090 -0700
@@ -51,7 +51,7 @@ static inline int ext4_acl_count(size_t 
 	}
 }
 
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 
 /* Value for inode->u.ext4_i.i_acl and inode->u.ext4_i.i_default_acl
    if the ACL has not been cached */
@@ -62,7 +62,7 @@ extern int ext4_permission (struct inode
 extern int ext4_acl_chmod (struct inode *);
 extern int ext4_init_acl (handle_t *, struct inode *, struct inode *);
 
-#else  /* CONFIG_EXT4_FS_POSIX_ACL */
+#else  /* CONFIG_EXT3DEV_FS_POSIX_ACL */
 #include <linux/sched.h>
 #define ext4_permission NULL
 
@@ -77,5 +77,5 @@ ext4_init_acl(handle_t *handle, struct i
 {
 	return 0;
 }
-#endif  /* CONFIG_EXT4_FS_POSIX_ACL */
+#endif  /* CONFIG_EXT3DEV_FS_POSIX_ACL */
 
diff -puN fs/ext4/file.c~register-ext3dev fs/ext4/file.c
--- linux-2.6.18-rc4/fs/ext4/file.c~register-ext3dev	2006-08-09 15:41:29.290105823 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/file.c	2006-08-09 15:41:29.324106098 -0700
@@ -126,7 +126,7 @@ const struct file_operations ext4_file_o
 struct inode_operations ext4_file_inode_operations = {
 	.truncate	= ext4_truncate,
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/inode.c~register-ext3dev fs/ext4/inode.c
--- linux-2.6.18-rc4/fs/ext4/inode.c~register-ext3dev	2006-08-09 15:41:29.294105856 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/inode.c	2006-08-09 15:41:29.329106139 -0700
@@ -2584,7 +2584,7 @@ void ext4_read_inode(struct inode * inod
 	struct buffer_head *bh;
 	int block;
 
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	ei->i_acl = EXT4_ACL_NOT_CACHED;
 	ei->i_default_acl = EXT4_ACL_NOT_CACHED;
 #endif
diff -puN fs/ext4/namei.c~register-ext3dev fs/ext4/namei.c
--- linux-2.6.18-rc4/fs/ext4/namei.c~register-ext3dev	2006-08-09 15:41:29.298105888 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/namei.c	2006-08-09 15:41:29.332106163 -0700
@@ -1689,7 +1689,7 @@ retry:
 	err = PTR_ERR(inode);
 	if (!IS_ERR(inode)) {
 		init_special_inode(inode, inode->i_mode, rdev);
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 		inode->i_op = &ext4_special_inode_operations;
 #endif
 		err = ext4_add_nondir(handle, dentry, inode);
@@ -2364,7 +2364,7 @@ struct inode_operations ext4_dir_inode_o
 	.mknod		= ext4_mknod,
 	.rename		= ext4_rename,
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
@@ -2375,7 +2375,7 @@ struct inode_operations ext4_dir_inode_o
 
 struct inode_operations ext4_special_inode_operations = {
 	.setattr	= ext4_setattr,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/symlink.c~register-ext3dev fs/ext4/symlink.c
--- linux-2.6.18-rc4/fs/ext4/symlink.c~register-ext3dev	2006-08-09 15:41:29.301105912 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/symlink.c	2006-08-09 15:41:29.333106171 -0700
@@ -34,7 +34,7 @@ struct inode_operations ext4_symlink_ino
 	.readlink	= generic_readlink,
 	.follow_link	= page_follow_link_light,
 	.put_link	= page_put_link,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
@@ -45,7 +45,7 @@ struct inode_operations ext4_symlink_ino
 struct inode_operations ext4_fast_symlink_inode_operations = {
 	.readlink	= generic_readlink,
 	.follow_link	= ext4_follow_link,
-#ifdef CONFIG_EXT4_FS_XATTR
+#ifdef CONFIG_EXT3DEV_FS_XATTR
 	.setxattr	= generic_setxattr,
 	.getxattr	= generic_getxattr,
 	.listxattr	= ext4_listxattr,
diff -puN fs/ext4/xattr.c~register-ext3dev fs/ext4/xattr.c
--- linux-2.6.18-rc4/fs/ext4/xattr.c~register-ext3dev	2006-08-09 15:41:29.304105937 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/xattr.c	2006-08-09 15:41:29.335106188 -0700
@@ -104,12 +104,12 @@ static struct mb_cache *ext4_xattr_cache
 
 static struct xattr_handler *ext4_xattr_handler_map[] = {
 	[EXT4_XATTR_INDEX_USER]		     = &ext4_xattr_user_handler,
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	[EXT4_XATTR_INDEX_POSIX_ACL_ACCESS]  = &ext4_xattr_acl_access_handler,
 	[EXT4_XATTR_INDEX_POSIX_ACL_DEFAULT] = &ext4_xattr_acl_default_handler,
 #endif
 	[EXT4_XATTR_INDEX_TRUSTED]	     = &ext4_xattr_trusted_handler,
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 	[EXT4_XATTR_INDEX_SECURITY]	     = &ext4_xattr_security_handler,
 #endif
 };
@@ -117,11 +117,11 @@ static struct xattr_handler *ext4_xattr_
 struct xattr_handler *ext4_xattr_handlers[] = {
 	&ext4_xattr_user_handler,
 	&ext4_xattr_trusted_handler,
-#ifdef CONFIG_EXT4_FS_POSIX_ACL
+#ifdef CONFIG_EXT3DEV_FS_POSIX_ACL
 	&ext4_xattr_acl_access_handler,
 	&ext4_xattr_acl_default_handler,
 #endif
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 	&ext4_xattr_security_handler,
 #endif
 	NULL
diff -puN fs/ext4/xattr.h~register-ext3dev fs/ext4/xattr.h
--- linux-2.6.18-rc4/fs/ext4/xattr.h~register-ext3dev	2006-08-09 15:41:29.307105961 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/xattr.h	2006-08-09 15:41:29.336106196 -0700
@@ -56,7 +56,7 @@ struct ext4_xattr_entry {
 #define EXT4_XATTR_SIZE(size) \
 	(((size) + EXT4_XATTR_ROUND) & ~EXT4_XATTR_ROUND)
 
-# ifdef CONFIG_EXT4_FS_XATTR
+# ifdef CONFIG_EXT3DEV_FS_XATTR
 
 extern struct xattr_handler ext4_xattr_user_handler;
 extern struct xattr_handler ext4_xattr_trusted_handler;
@@ -79,7 +79,7 @@ extern void exit_ext4_xattr(void);
 
 extern struct xattr_handler *ext4_xattr_handlers[];
 
-# else  /* CONFIG_EXT4_FS_XATTR */
+# else  /* CONFIG_EXT3DEV_FS_XATTR */
 
 static inline int
 ext4_xattr_get(struct inode *inode, int name_index, const char *name,
@@ -131,9 +131,9 @@ exit_ext4_xattr(void)
 
 #define ext4_xattr_handlers	NULL
 
-# endif  /* CONFIG_EXT4_FS_XATTR */
+# endif  /* CONFIG_EXT3DEV_FS_XATTR */
 
-#ifdef CONFIG_EXT4_FS_SECURITY
+#ifdef CONFIG_EXT3DEV_FS_SECURITY
 extern int ext4_init_security(handle_t *handle, struct inode *inode,
 				struct inode *dir);
 #else
diff -puN fs/ext4/Makefile~register-ext3dev fs/ext4/Makefile
--- linux-2.6.18-rc4/fs/ext4/Makefile~register-ext3dev	2006-08-09 15:41:29.310105985 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/Makefile	2006-08-09 15:41:29.336106196 -0700
@@ -2,11 +2,11 @@
 # Makefile for the linux ext4-filesystem routines.
 #
 
-obj-$(CONFIG_EXT4_FS) += ext4.o
+obj-$(CONFIG_EXT3DEV_FS) += ext3dev.o
 
-ext4-y	:= balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
+ext3dev-y	:= balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
 	   ioctl.o namei.o super.o symlink.o hash.o resize.o
 
-ext4-$(CONFIG_EXT4_FS_XATTR)	 += xattr.o xattr_user.o xattr_trusted.o
-ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o
-ext4-$(CONFIG_EXT4_FS_SECURITY)	 += xattr_security.o
+ext3dev-$(CONFIG_EXT3DEV_FS_XATTR)	+= xattr.o xattr_user.o xattr_trusted.o
+ext3dev-$(CONFIG_EXT3DEV_FS_POSIX_ACL)	+= acl.o
+ext3dev-$(CONFIG_EXT3DEV_FS_SECURITY)	+= xattr_security.o

_



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

             reply	other threads:[~2006-08-10  1:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-10  1:17 Mingming Cao [this message]
2006-08-10  1:17 ` [PATCH 2/5] Register ext3dev filesystem Mingming Cao
2006-08-10  9:20 ` [Ext2-devel] " Erik Mouw
2006-08-10 17:33   ` Randy.Dunlap
2006-08-10 17:59   ` Theodore Tso
2006-08-10 17:59     ` Theodore Tso
2006-08-10 19:53     ` [Ext2-devel] " Jeff Garzik
2006-08-10 19:53       ` Jeff Garzik
2006-08-10 20:08       ` [Ext2-devel] " Dave Kleikamp
2006-08-10 20:08         ` Dave Kleikamp
2006-08-10 20:22         ` [Ext2-devel] " John Stoffel
2006-08-10 20:22           ` John Stoffel
2006-08-10 20:24         ` [Ext2-devel] " Jeff Garzik
2006-08-10 20:24           ` Jeff Garzik
2006-08-10 21:05           ` [Ext2-devel] " Mingming Cao
2006-08-10 21:05             ` Mingming Cao
2006-08-10 20:23       ` [Ext2-devel] " Erik Mouw
2006-08-10 20:23         ` Erik Mouw
2006-08-10 20:27         ` [Ext2-devel] " Jeff Garzik
2006-08-10 20:27           ` Jeff Garzik
2006-08-15 15:25 ` Pavel Machek
2006-11-20 10:14 ` Sander

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1155172642.3161.74.camel@localhost.localdomain \
    --to=cmm@us.ibm.com \
    --cc=akpm@osdl.org \
    --cc=ext2-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.