Skip to content

Commit

Permalink
task_struct: make journal_info conditional
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
h-shimamoto authored and torvalds committed Dec 15, 2009
1 parent 8420e7e commit e4c570c
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 1 deletion.
4 changes: 4 additions & 0 deletions fs/Kconfig
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions fs/btrfs/Kconfig
Expand Up @@ -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.
Expand Down
1 change: 1 addition & 0 deletions fs/ext4/Kconfig
Expand Up @@ -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.

Expand Down
1 change: 1 addition & 0 deletions fs/gfs2/Kconfig
Expand Up @@ -10,6 +10,7 @@ config GFS2_FS
select SLOW_WORK
select QUOTA
select QUOTACTL
select FS_JOURNAL_INFO
help
A cluster filesystem.

Expand Down
1 change: 1 addition & 0 deletions fs/jbd/Kconfig
@@ -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
Expand Down
1 change: 1 addition & 0 deletions fs/jbd2/Kconfig
@@ -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
Expand Down
1 change: 1 addition & 0 deletions fs/nilfs2/Kconfig
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions fs/reiserfs/Kconfig
@@ -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.
Expand Down
8 changes: 7 additions & 1 deletion include/linux/init_task.h
Expand Up @@ -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)
Expand Down Expand Up @@ -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), \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions include/linux/sched.h
Expand Up @@ -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;
Expand Down

0 comments on commit e4c570c

Please sign in to comment.