fs/sysv: stop using write_super and s_dirt
It does not look like sysv FS needs 'write_super()' at all, because all it does is a timestamp update. I cannot test this patch, because this file-system is so old and probably has not been used by anyone for years, so there are no tools to create it in Linux. But from the code I see that marking the superblock as dirty is basically marking the superblock buffers as drity and then setting the s_dirt flag. And when 'write_super()' is executed to handle the s_dirt flag, we just update the timestamp and again mark the superblock buffer as dirty. Seems pointless. It looks like we can update the timestamp more opprtunistically - on unmount or remount of sync, and nothing should change. Thus, this patch removes 'sysv_write_super()' and 's_dirt'. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
eee458936b
commit
9d46be294d
|
@ -43,7 +43,6 @@ static int sysv_sync_fs(struct super_block *sb, int wait)
|
|||
* then attach current time stamp.
|
||||
* But if the filesystem was marked clean, keep it clean.
|
||||
*/
|
||||
sb->s_dirt = 0;
|
||||
old_time = fs32_to_cpu(sbi, *sbi->s_sb_time);
|
||||
if (sbi->s_type == FSTYPE_SYSV4) {
|
||||
if (*sbi->s_sb_state == cpu_to_fs32(sbi, 0x7c269d38 - old_time))
|
||||
|
@ -57,14 +56,6 @@ static int sysv_sync_fs(struct super_block *sb, int wait)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void sysv_write_super(struct super_block *sb)
|
||||
{
|
||||
if (!(sb->s_flags & MS_RDONLY))
|
||||
sysv_sync_fs(sb, 1);
|
||||
else
|
||||
sb->s_dirt = 0;
|
||||
}
|
||||
|
||||
static int sysv_remount(struct super_block *sb, int *flags, char *data)
|
||||
{
|
||||
struct sysv_sb_info *sbi = SYSV_SB(sb);
|
||||
|
@ -351,7 +342,6 @@ const struct super_operations sysv_sops = {
|
|||
.write_inode = sysv_write_inode,
|
||||
.evict_inode = sysv_evict_inode,
|
||||
.put_super = sysv_put_super,
|
||||
.write_super = sysv_write_super,
|
||||
.sync_fs = sysv_sync_fs,
|
||||
.remount_fs = sysv_remount,
|
||||
.statfs = sysv_statfs,
|
||||
|
|
|
@ -117,7 +117,6 @@ static inline void dirty_sb(struct super_block *sb)
|
|||
mark_buffer_dirty(sbi->s_bh1);
|
||||
if (sbi->s_bh1 != sbi->s_bh2)
|
||||
mark_buffer_dirty(sbi->s_bh2);
|
||||
sb->s_dirt = 1;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user