aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2009-04-27 09:46:42 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2009-06-11 21:36:05 -0400
commitca41f7b918294c2a17780e057568413dcbfc6d49 (patch)
tree0f10dbd7e56d5e594802898d744820e551f17cda /fs/ext3
parent59d697b70285c348c01cfc2695c3469ba71d7539 (diff)
ext3: remove ->write_super and stop maintaining ->s_dirt
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext3')
-rw-r--r--fs/ext3/balloc.c3
-rw-r--r--fs/ext3/ialloc.c3
-rw-r--r--fs/ext3/inode.c1
-rw-r--r--fs/ext3/resize.c2
-rw-r--r--fs/ext3/super.c22
-rw-r--r--fs/ext3/xattr.c1
6 files changed, 2 insertions, 30 deletions
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index 225202db8974..27967f92e820 100644
--- a/fs/ext3/balloc.c
+++ b/fs/ext3/balloc.c
@@ -649,7 +649,7 @@ do_more:
649 count = overflow; 649 count = overflow;
650 goto do_more; 650 goto do_more;
651 } 651 }
652 sb->s_dirt = 1; 652
653error_return: 653error_return:
654 brelse(bitmap_bh); 654 brelse(bitmap_bh);
655 ext3_std_error(sb, err); 655 ext3_std_error(sb, err);
@@ -1708,7 +1708,6 @@ allocated:
1708 if (!fatal) 1708 if (!fatal)
1709 fatal = err; 1709 fatal = err;
1710 1710
1711 sb->s_dirt = 1;
1712 if (fatal) 1711 if (fatal)
1713 goto out; 1712 goto out;
1714 1713
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c
index dd13d60d524b..b39991285136 100644
--- a/fs/ext3/ialloc.c
+++ b/fs/ext3/ialloc.c
@@ -181,7 +181,7 @@ void ext3_free_inode (handle_t *handle, struct inode * inode)
181 err = ext3_journal_dirty_metadata(handle, bitmap_bh); 181 err = ext3_journal_dirty_metadata(handle, bitmap_bh);
182 if (!fatal) 182 if (!fatal)
183 fatal = err; 183 fatal = err;
184 sb->s_dirt = 1; 184
185error_return: 185error_return:
186 brelse(bitmap_bh); 186 brelse(bitmap_bh);
187 ext3_std_error(sb, fatal); 187 ext3_std_error(sb, fatal);
@@ -537,7 +537,6 @@ got:
537 percpu_counter_dec(&sbi->s_freeinodes_counter); 537 percpu_counter_dec(&sbi->s_freeinodes_counter);
538 if (S_ISDIR(mode)) 538 if (S_ISDIR(mode))
539 percpu_counter_inc(&sbi->s_dirs_counter); 539 percpu_counter_inc(&sbi->s_dirs_counter);
540 sb->s_dirt = 1;
541 540
542 inode->i_uid = current_fsuid(); 541 inode->i_uid = current_fsuid();
543 if (test_opt (sb, GRPID)) 542 if (test_opt (sb, GRPID))
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index fcfa24361856..b0248c6d5d4c 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -2960,7 +2960,6 @@ static int ext3_do_update_inode(handle_t *handle,
2960 ext3_update_dynamic_rev(sb); 2960 ext3_update_dynamic_rev(sb);
2961 EXT3_SET_RO_COMPAT_FEATURE(sb, 2961 EXT3_SET_RO_COMPAT_FEATURE(sb,
2962 EXT3_FEATURE_RO_COMPAT_LARGE_FILE); 2962 EXT3_FEATURE_RO_COMPAT_LARGE_FILE);
2963 sb->s_dirt = 1;
2964 handle->h_sync = 1; 2963 handle->h_sync = 1;
2965 err = ext3_journal_dirty_metadata(handle, 2964 err = ext3_journal_dirty_metadata(handle,
2966 EXT3_SB(sb)->s_sbh); 2965 EXT3_SB(sb)->s_sbh);
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c
index 78fdf3836370..8a0b26340b54 100644
--- a/fs/ext3/resize.c
+++ b/fs/ext3/resize.c
@@ -934,7 +934,6 @@ int ext3_group_add(struct super_block *sb, struct ext3_new_group_data *input)
934 EXT3_INODES_PER_GROUP(sb)); 934 EXT3_INODES_PER_GROUP(sb));
935 935
936 ext3_journal_dirty_metadata(handle, sbi->s_sbh); 936 ext3_journal_dirty_metadata(handle, sbi->s_sbh);
937 sb->s_dirt = 1;
938 937
939exit_journal: 938exit_journal:
940 unlock_super(sb); 939 unlock_super(sb);
@@ -1066,7 +1065,6 @@ int ext3_group_extend(struct super_block *sb, struct ext3_super_block *es,
1066 } 1065 }
1067 es->s_blocks_count = cpu_to_le32(o_blocks_count + add); 1066 es->s_blocks_count = cpu_to_le32(o_blocks_count + add);
1068 ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh); 1067 ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
1069 sb->s_dirt = 1;
1070 unlock_super(sb); 1068 unlock_super(sb);
1071 ext3_debug("freeing blocks %lu through "E3FSBLK"\n", o_blocks_count, 1069 ext3_debug("freeing blocks %lu through "E3FSBLK"\n", o_blocks_count,
1072 o_blocks_count + add); 1070 o_blocks_count + add);
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 3c70d52afb10..1efd958687e9 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -67,7 +67,6 @@ static const char *ext3_decode_error(struct super_block * sb, int errno,
67static int ext3_remount (struct super_block * sb, int * flags, char * data); 67static int ext3_remount (struct super_block * sb, int * flags, char * data);
68static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf); 68static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf);
69static int ext3_unfreeze(struct super_block *sb); 69static int ext3_unfreeze(struct super_block *sb);
70static void ext3_write_super (struct super_block * sb);
71static int ext3_freeze(struct super_block *sb); 70static int ext3_freeze(struct super_block *sb);
72 71
73/* 72/*
@@ -761,7 +760,6 @@ static const struct super_operations ext3_sops = {
761 .dirty_inode = ext3_dirty_inode, 760 .dirty_inode = ext3_dirty_inode,
762 .delete_inode = ext3_delete_inode, 761 .delete_inode = ext3_delete_inode,
763 .put_super = ext3_put_super, 762 .put_super = ext3_put_super,
764 .write_super = ext3_write_super,
765 .sync_fs = ext3_sync_fs, 763 .sync_fs = ext3_sync_fs,
766 .freeze_fs = ext3_freeze, 764 .freeze_fs = ext3_freeze,
767 .unfreeze_fs = ext3_unfreeze, 765 .unfreeze_fs = ext3_unfreeze,
@@ -1785,7 +1783,6 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
1785#else 1783#else
1786 es->s_flags |= cpu_to_le32(EXT2_FLAGS_SIGNED_HASH); 1784 es->s_flags |= cpu_to_le32(EXT2_FLAGS_SIGNED_HASH);
1787#endif 1785#endif
1788 sb->s_dirt = 1;
1789 } 1786 }
1790 1787
1791 if (sbi->s_blocks_per_group > blocksize * 8) { 1788 if (sbi->s_blocks_per_group > blocksize * 8) {
@@ -2265,7 +2262,6 @@ static int ext3_load_journal(struct super_block *sb,
2265 if (journal_devnum && 2262 if (journal_devnum &&
2266 journal_devnum != le32_to_cpu(es->s_journal_dev)) { 2263 journal_devnum != le32_to_cpu(es->s_journal_dev)) {
2267 es->s_journal_dev = cpu_to_le32(journal_devnum); 2264 es->s_journal_dev = cpu_to_le32(journal_devnum);
2268 sb->s_dirt = 1;
2269 2265
2270 /* Make sure we flush the recovery flag to disk. */ 2266 /* Make sure we flush the recovery flag to disk. */
2271 ext3_commit_super(sb, es, 1); 2267 ext3_commit_super(sb, es, 1);
@@ -2308,7 +2304,6 @@ static int ext3_create_journal(struct super_block * sb,
2308 EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL); 2304 EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL);
2309 2305
2310 es->s_journal_inum = cpu_to_le32(journal_inum); 2306 es->s_journal_inum = cpu_to_le32(journal_inum);
2311 sb->s_dirt = 1;
2312 2307
2313 /* Make sure we flush the recovery flag to disk. */ 2308 /* Make sure we flush the recovery flag to disk. */
2314 ext3_commit_super(sb, es, 1); 2309 ext3_commit_super(sb, es, 1);
@@ -2354,7 +2349,6 @@ static void ext3_mark_recovery_complete(struct super_block * sb,
2354 if (EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER) && 2349 if (EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER) &&
2355 sb->s_flags & MS_RDONLY) { 2350 sb->s_flags & MS_RDONLY) {
2356 EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER); 2351 EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
2357 sb->s_dirt = 0;
2358 ext3_commit_super(sb, es, 1); 2352 ext3_commit_super(sb, es, 1);
2359 } 2353 }
2360 unlock_super(sb); 2354 unlock_super(sb);
@@ -2413,29 +2407,14 @@ int ext3_force_commit(struct super_block *sb)
2413 return 0; 2407 return 0;
2414 2408
2415 journal = EXT3_SB(sb)->s_journal; 2409 journal = EXT3_SB(sb)->s_journal;
2416 sb->s_dirt = 0;
2417 ret = ext3_journal_force_commit(journal); 2410 ret = ext3_journal_force_commit(journal);
2418 return ret; 2411 return ret;
2419} 2412}
2420 2413
2421/*
2422 * Ext3 always journals updates to the superblock itself, so we don't
2423 * have to propagate any other updates to the superblock on disk at this
2424 * point. (We can probably nuke this function altogether, and remove
2425 * any mention to sb->s_dirt in all of fs/ext3; eventual cleanup...)
2426 */
2427static void ext3_write_super (struct super_block * sb)
2428{
2429 if (mutex_trylock(&sb->s_lock) != 0)
2430 BUG();
2431 sb->s_dirt = 0;
2432}
2433
2434static int ext3_sync_fs(struct super_block *sb, int wait) 2414static int ext3_sync_fs(struct super_block *sb, int wait)
2435{ 2415{
2436 tid_t target; 2416 tid_t target;
2437 2417
2438 sb->s_dirt = 0;
2439 if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) { 2418 if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
2440 if (wait) 2419 if (wait)
2441 log_wait_commit(EXT3_SB(sb)->s_journal, target); 2420 log_wait_commit(EXT3_SB(sb)->s_journal, target);
@@ -2451,7 +2430,6 @@ static int ext3_freeze(struct super_block *sb)
2451{ 2430{
2452 int error = 0; 2431 int error = 0;
2453 journal_t *journal; 2432 journal_t *journal;
2454 sb->s_dirt = 0;
2455 2433
2456 if (!(sb->s_flags & MS_RDONLY)) { 2434 if (!(sb->s_flags & MS_RDONLY)) {
2457 journal = EXT3_SB(sb)->s_journal; 2435 journal = EXT3_SB(sb)->s_journal;
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
index 83b7be849bd5..545e37c4b91e 100644
--- a/fs/ext3/xattr.c
+++ b/fs/ext3/xattr.c
@@ -463,7 +463,6 @@ static void ext3_xattr_update_super_block(handle_t *handle,
463 463
464 if (ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh) == 0) { 464 if (ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh) == 0) {
465 EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR); 465 EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR);
466 sb->s_dirt = 1;
467 ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh); 466 ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
468 } 467 }
469} 468}