Commit b838ec22 authored by Jan Kara's avatar Jan Kara

ext2: Remove s_dirt handling

Places which modify superblock feature / state fields mark the superblock
buffer dirty so it is written out by flusher thread. Thus there's no need to
set s_dirt there.

The only other fields changing in the superblock are the numbers of free
blocks, free inodes and s_wtime. There's no real need to write (or even
compute) these periodically. Free blocks / inodes counters are recomputed on
every mount from group counters anyway and value of s_wtime is only
informational and imprecise anyway. So it should be enough to write these
opportunistically on mount, remount, umount, and sync_fs times.
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent f2b22420
...@@ -165,7 +165,6 @@ static void release_blocks(struct super_block *sb, int count) ...@@ -165,7 +165,6 @@ static void release_blocks(struct super_block *sb, int count)
struct ext2_sb_info *sbi = EXT2_SB(sb); struct ext2_sb_info *sbi = EXT2_SB(sb);
percpu_counter_add(&sbi->s_freeblocks_counter, count); percpu_counter_add(&sbi->s_freeblocks_counter, count);
sb->s_dirt = 1;
} }
} }
...@@ -180,7 +179,6 @@ static void group_adjust_blocks(struct super_block *sb, int group_no, ...@@ -180,7 +179,6 @@ static void group_adjust_blocks(struct super_block *sb, int group_no,
free_blocks = le16_to_cpu(desc->bg_free_blocks_count); free_blocks = le16_to_cpu(desc->bg_free_blocks_count);
desc->bg_free_blocks_count = cpu_to_le16(free_blocks + count); desc->bg_free_blocks_count = cpu_to_le16(free_blocks + count);
spin_unlock(sb_bgl_lock(sbi, group_no)); spin_unlock(sb_bgl_lock(sbi, group_no));
sb->s_dirt = 1;
mark_buffer_dirty(bh); mark_buffer_dirty(bh);
} }
} }
......
...@@ -81,7 +81,6 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir) ...@@ -81,7 +81,6 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir)
spin_unlock(sb_bgl_lock(EXT2_SB(sb), group)); spin_unlock(sb_bgl_lock(EXT2_SB(sb), group));
if (dir) if (dir)
percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter); percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter);
sb->s_dirt = 1;
mark_buffer_dirty(bh); mark_buffer_dirty(bh);
} }
...@@ -543,7 +542,6 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode, ...@@ -543,7 +542,6 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode,
} }
spin_unlock(sb_bgl_lock(sbi, group)); spin_unlock(sb_bgl_lock(sbi, group));
sb->s_dirt = 1;
mark_buffer_dirty(bh2); mark_buffer_dirty(bh2);
if (test_opt(sb, GRPID)) { if (test_opt(sb, GRPID)) {
inode->i_mode = mode; inode->i_mode = mode;
......
...@@ -1158,7 +1158,6 @@ static void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es, ...@@ -1158,7 +1158,6 @@ static void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es,
mark_buffer_dirty(EXT2_SB(sb)->s_sbh); mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
if (wait) if (wait)
sync_dirty_buffer(EXT2_SB(sb)->s_sbh); sync_dirty_buffer(EXT2_SB(sb)->s_sbh);
sb->s_dirt = 0;
} }
/* /*
...@@ -1191,8 +1190,6 @@ void ext2_write_super(struct super_block *sb) ...@@ -1191,8 +1190,6 @@ void ext2_write_super(struct super_block *sb)
{ {
if (!(sb->s_flags & MS_RDONLY)) if (!(sb->s_flags & MS_RDONLY))
ext2_sync_fs(sb, 1); ext2_sync_fs(sb, 1);
else
sb->s_dirt = 0;
} }
static int ext2_remount (struct super_block * sb, int * flags, char * data) static int ext2_remount (struct super_block * sb, int * flags, char * data)
......
...@@ -339,7 +339,6 @@ static void ext2_xattr_update_super_block(struct super_block *sb) ...@@ -339,7 +339,6 @@ static void ext2_xattr_update_super_block(struct super_block *sb)
spin_lock(&EXT2_SB(sb)->s_lock); spin_lock(&EXT2_SB(sb)->s_lock);
EXT2_SET_COMPAT_FEATURE(sb, EXT2_FEATURE_COMPAT_EXT_ATTR); EXT2_SET_COMPAT_FEATURE(sb, EXT2_FEATURE_COMPAT_EXT_ATTR);
spin_unlock(&EXT2_SB(sb)->s_lock); spin_unlock(&EXT2_SB(sb)->s_lock);
sb->s_dirt = 1;
mark_buffer_dirty(EXT2_SB(sb)->s_sbh); mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment