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: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -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);
|
||||
if (wait)
|
||||
sync_dirty_buffer(EXT2_SB(sb)->s_sbh);
|
||||
sb->s_dirt = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1191,8 +1190,6 @@ void ext2_write_super(struct super_block *sb)
|
||||
{
|
||||
if (!(sb->s_flags & MS_RDONLY))
|
||||
ext2_sync_fs(sb, 1);
|
||||
else
|
||||
sb->s_dirt = 0;
|
||||
}
|
||||
|
||||
static int ext2_remount (struct super_block * sb, int * flags, char * data)
|
||||
|
Reference in New Issue
Block a user