diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-06-01 10:18:08 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-01 10:37:36 -0400 |
commit | 033369d1af1264abc23bea2e174aa47cdd212f6f (patch) | |
tree | b00e709d1e9270b1708488da7a596a8dff72541d /fs/reiserfs/reiserfs.h | |
parent | 5c5fd81962271d4ee2984837fef4ec37e689aa41 (diff) |
reiserfs: get rid of resierfs_sync_super
This patch stops reiserfs using the VFS 'write_super()' method along with the
s_dirt flag, because they are on their way out.
The whole "superblock write-out" VFS infrastructure is served by the
'sync_supers()' kernel thread, which wakes up every 5 (by default) seconds and
writes out all dirty superblock using the '->write_super()' call-back. But the
problem with this thread is that it wastes power by waking up the system every
5 seconds, even if there are no diry superblocks, or there are no client
file-systems which would need this (e.g., btrfs does not use
'->write_super()'). So we want to kill it completely and thus, we need to make
file-systems to stop using the '->write_super()' VFS service, and then remove
it together with the kernel thread.
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/reiserfs/reiserfs.h')
-rw-r--r-- | fs/reiserfs/reiserfs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h index 5c700550bb07..33215f57ea06 100644 --- a/fs/reiserfs/reiserfs.h +++ b/fs/reiserfs/reiserfs.h | |||
@@ -480,6 +480,11 @@ struct reiserfs_sb_info { | |||
480 | struct dentry *priv_root; /* root of /.reiserfs_priv */ | 480 | struct dentry *priv_root; /* root of /.reiserfs_priv */ |
481 | struct dentry *xattr_root; /* root of /.reiserfs_priv/xattrs */ | 481 | struct dentry *xattr_root; /* root of /.reiserfs_priv/xattrs */ |
482 | int j_errno; | 482 | int j_errno; |
483 | |||
484 | int work_queued; /* non-zero delayed work is queued */ | ||
485 | struct delayed_work old_work; /* old transactions flush delayed work */ | ||
486 | spinlock_t old_work_lock; /* protects old_work and work_queued */ | ||
487 | |||
483 | #ifdef CONFIG_QUOTA | 488 | #ifdef CONFIG_QUOTA |
484 | char *s_qf_names[MAXQUOTAS]; | 489 | char *s_qf_names[MAXQUOTAS]; |
485 | int s_jquota_fmt; | 490 | int s_jquota_fmt; |
@@ -2487,6 +2492,7 @@ void reiserfs_abort(struct super_block *sb, int errno, const char *fmt, ...); | |||
2487 | int reiserfs_allocate_list_bitmaps(struct super_block *s, | 2492 | int reiserfs_allocate_list_bitmaps(struct super_block *s, |
2488 | struct reiserfs_list_bitmap *, unsigned int); | 2493 | struct reiserfs_list_bitmap *, unsigned int); |
2489 | 2494 | ||
2495 | void reiserfs_schedule_old_flush(struct super_block *s); | ||
2490 | void add_save_link(struct reiserfs_transaction_handle *th, | 2496 | void add_save_link(struct reiserfs_transaction_handle *th, |
2491 | struct inode *inode, int truncate); | 2497 | struct inode *inode, int truncate); |
2492 | int remove_save_link(struct inode *inode, int truncate); | 2498 | int remove_save_link(struct inode *inode, int truncate); |