task_struct: make journal_info conditional

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>
This commit is contained in:
Hiroshi Shimamoto 2009-12-14 18:00:26 -08:00 committed by Linus Torvalds
parent 8420e7efa1
commit e4c570c4cb
10 changed files with 20 additions and 1 deletions

View File

@ -6,6 +6,10 @@ menu "File systems"
if BLOCK if BLOCK
config FS_JOURNAL_INFO
bool
default n
source "fs/ext2/Kconfig" source "fs/ext2/Kconfig"
source "fs/ext3/Kconfig" source "fs/ext3/Kconfig"
source "fs/ext4/Kconfig" source "fs/ext4/Kconfig"

View File

@ -4,6 +4,7 @@ config BTRFS_FS
select LIBCRC32C select LIBCRC32C
select ZLIB_INFLATE select ZLIB_INFLATE
select ZLIB_DEFLATE select ZLIB_DEFLATE
select FS_JOURNAL_INFO
help help
Btrfs is a new filesystem with extents, writable snapshotting, Btrfs is a new filesystem with extents, writable snapshotting,
support for multiple devices and many more features. support for multiple devices and many more features.

View File

@ -2,6 +2,7 @@ config EXT4_FS
tristate "The Extended 4 (ext4) filesystem" tristate "The Extended 4 (ext4) filesystem"
select JBD2 select JBD2
select CRC16 select CRC16
select FS_JOURNAL_INFO
help help
This is the next generation of the ext3 filesystem. This is the next generation of the ext3 filesystem.

View File

@ -10,6 +10,7 @@ config GFS2_FS
select SLOW_WORK select SLOW_WORK
select QUOTA select QUOTA
select QUOTACTL select QUOTACTL
select FS_JOURNAL_INFO
help help
A cluster filesystem. A cluster filesystem.

View File

@ -1,5 +1,6 @@
config JBD config JBD
tristate tristate
select FS_JOURNAL_INFO
help help
This is a generic journalling layer for block devices. It is This is a generic journalling layer for block devices. It is
currently used by the ext3 file system, but it could also be currently used by the ext3 file system, but it could also be

View File

@ -1,6 +1,7 @@
config JBD2 config JBD2
tristate tristate
select CRC32 select CRC32
select FS_JOURNAL_INFO
help help
This is a generic journaling layer for block devices that support This is a generic journaling layer for block devices that support
both 32-bit and 64-bit block numbers. It is currently used by both 32-bit and 64-bit block numbers. It is currently used by

View File

@ -2,6 +2,7 @@ config NILFS2_FS
tristate "NILFS2 file system support (EXPERIMENTAL)" tristate "NILFS2 file system support (EXPERIMENTAL)"
depends on EXPERIMENTAL depends on EXPERIMENTAL
select CRC32 select CRC32
select FS_JOURNAL_INFO
help help
NILFS2 is a log-structured file system (LFS) supporting continuous NILFS2 is a log-structured file system (LFS) supporting continuous
snapshotting. In addition to versioning capability of the entire snapshotting. In addition to versioning capability of the entire

View File

@ -1,6 +1,7 @@
config REISERFS_FS config REISERFS_FS
tristate "Reiserfs support" tristate "Reiserfs support"
select CRC32 select CRC32
select FS_JOURNAL_INFO
help help
Stores not just filenames but the files themselves in a balanced Stores not just filenames but the files themselves in a balanced
tree. Uses journalling. tree. Uses journalling.

View File

@ -111,6 +111,12 @@ extern struct cred init_cred;
# define INIT_PERF_EVENTS(tsk) # define INIT_PERF_EVENTS(tsk)
#endif #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 * INIT_TASK is used to set up the first task table, touch at
* your own risk!. Base=0, limit=0x1fffff (=2MB) * your own risk!. Base=0, limit=0x1fffff (=2MB)
@ -162,7 +168,6 @@ extern struct cred init_cred;
.signal = {{0}}}, \ .signal = {{0}}}, \
.blocked = {{0}}, \ .blocked = {{0}}, \
.alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \ .alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \
.journal_info = NULL, \
.cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \ .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \
.fs_excl = ATOMIC_INIT(0), \ .fs_excl = ATOMIC_INIT(0), \
.pi_lock = __SPIN_LOCK_UNLOCKED(tsk.pi_lock), \ .pi_lock = __SPIN_LOCK_UNLOCKED(tsk.pi_lock), \
@ -173,6 +178,7 @@ extern struct cred init_cred;
[PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \ [PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \
}, \ }, \
.dirties = INIT_PROP_LOCAL_SINGLE(dirties), \ .dirties = INIT_PROP_LOCAL_SINGLE(dirties), \
INIT_JOURNAL_INFO \
INIT_IDS \ INIT_IDS \
INIT_PERF_EVENTS(tsk) \ INIT_PERF_EVENTS(tsk) \
INIT_TRACE_IRQFLAGS \ INIT_TRACE_IRQFLAGS \

View File

@ -1446,8 +1446,10 @@ struct task_struct {
gfp_t lockdep_reclaim_gfp; gfp_t lockdep_reclaim_gfp;
#endif #endif
#ifdef CONFIG_FS_JOURNAL_INFO
/* journalling filesystem info */ /* journalling filesystem info */
void *journal_info; void *journal_info;
#endif
/* stacked block device info */ /* stacked block device info */
struct bio *bio_list, **bio_tail; struct bio *bio_list, **bio_tail;