task_struct: make journal_info conditional
Hiroshi Shimamoto [Tue, 15 Dec 2009 02:00:26 +0000 (18:00 -0800)]
journal_info in task_struct is used in journaling file system only.  So
introduce CONFIG_FS_JOURNAL_INFO and make it conditional.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Cc: Chris Mason <chris.mason@oracle.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

fs/Kconfig
fs/btrfs/Kconfig
fs/ext4/Kconfig
fs/gfs2/Kconfig
fs/jbd/Kconfig
fs/jbd2/Kconfig
fs/nilfs2/Kconfig
fs/reiserfs/Kconfig
include/linux/init_task.h
include/linux/sched.h

index 64d44ef..f8fccaa 100644 (file)
@@ -6,6 +6,10 @@ menu "File systems"
 
 if BLOCK
 
+config FS_JOURNAL_INFO
+       bool
+       default n
+
 source "fs/ext2/Kconfig"
 source "fs/ext3/Kconfig"
 source "fs/ext4/Kconfig"
index 7bb3c02..402afe0 100644 (file)
@@ -4,6 +4,7 @@ config BTRFS_FS
        select LIBCRC32C
        select ZLIB_INFLATE
        select ZLIB_DEFLATE
+       select FS_JOURNAL_INFO
        help
          Btrfs is a new filesystem with extents, writable snapshotting,
          support for multiple devices and many more features.
index 9acf7e8..e5f6774 100644 (file)
@@ -2,6 +2,7 @@ config EXT4_FS
        tristate "The Extended 4 (ext4) filesystem"
        select JBD2
        select CRC16
+       select FS_JOURNAL_INFO
        help
          This is the next generation of the ext3 filesystem.
 
index 4dcddf8..b192c66 100644 (file)
@@ -10,6 +10,7 @@ config GFS2_FS
        select SLOW_WORK
        select QUOTA
        select QUOTACTL
+       select FS_JOURNAL_INFO
        help
          A cluster filesystem.
 
index 4e28bee..a840898 100644 (file)
@@ -1,5 +1,6 @@
 config JBD
        tristate
+       select FS_JOURNAL_INFO
        help
          This is a generic journalling layer for block devices.  It is
          currently used by the ext3 file system, but it could also be
index f32f346..0f7d1ce 100644 (file)
@@ -1,6 +1,7 @@
 config JBD2
        tristate
        select CRC32
+       select FS_JOURNAL_INFO
        help
          This is a generic journaling layer for block devices that support
          both 32-bit and 64-bit block numbers.  It is currently used by
index 251da07..1225af7 100644 (file)
@@ -2,6 +2,7 @@ config NILFS2_FS
        tristate "NILFS2 file system support (EXPERIMENTAL)"
        depends on EXPERIMENTAL
        select CRC32
+       select FS_JOURNAL_INFO
        help
          NILFS2 is a log-structured file system (LFS) supporting continuous
          snapshotting.  In addition to versioning capability of the entire
index 513f431..ac7cd75 100644 (file)
@@ -1,6 +1,7 @@
 config REISERFS_FS
        tristate "Reiserfs support"
        select CRC32
+       select FS_JOURNAL_INFO
        help
          Stores not just filenames but the files themselves in a balanced
          tree.  Uses journalling.
index 8d10aa7..8ed0abf 100644 (file)
@@ -111,6 +111,12 @@ extern struct cred init_cred;
 # define INIT_PERF_EVENTS(tsk)
 #endif
 
+#ifdef CONFIG_FS_JOURNAL_INFO
+#define INIT_JOURNAL_INFO      .journal_info = NULL,
+#else
+#define INIT_JOURNAL_INFO
+#endif
+
 /*
  *  INIT_TASK is used to set up the first task table, touch at
  * your own risk!. Base=0, limit=0x1fffff (=2MB)
@@ -162,7 +168,6 @@ extern struct cred init_cred;
                .signal = {{0}}},                                       \
        .blocked        = {{0}},                                        \
        .alloc_lock     = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock),         \
-       .journal_info   = NULL,                                         \
        .cpu_timers     = INIT_CPU_TIMERS(tsk.cpu_timers),              \
        .fs_excl        = ATOMIC_INIT(0),                               \
        .pi_lock        = __SPIN_LOCK_UNLOCKED(tsk.pi_lock),            \
@@ -173,6 +178,7 @@ extern struct cred init_cred;
                [PIDTYPE_SID]  = INIT_PID_LINK(PIDTYPE_SID),            \
        },                                                              \
        .dirties = INIT_PROP_LOCAL_SINGLE(dirties),                     \
+       INIT_JOURNAL_INFO                                               \
        INIT_IDS                                                        \
        INIT_PERF_EVENTS(tsk)                                           \
        INIT_TRACE_IRQFLAGS                                             \
index 294eb2f..7d38849 100644 (file)
@@ -1446,8 +1446,10 @@ struct task_struct {
        gfp_t lockdep_reclaim_gfp;
 #endif
 
+#ifdef CONFIG_FS_JOURNAL_INFO
 /* journalling filesystem info */
        void *journal_info;
+#endif
 
 /* stacked block device info */
        struct bio *bio_list, **bio_tail;