nilfs2: fix disorder of nilfs_write_super in nilfs_sync_fs
This fixes disorder of nilfs_write_super in nilfs_sync_fs. Commiting super block must be the end of the function so that every changes are reflected. ->sync_fs() is not called frequently so this makes nilfs_sync_fs call nilfs_commit_super instead of nilfs_write_super. Signed-off-by: Jiro SEKIBA <jir@unicus.jp> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
This commit is contained in:
parent
ec5d66abdb
commit
6233caa9d5
|
@ -385,13 +385,19 @@ static void nilfs_write_super(struct super_block *sb)
|
|||
|
||||
static int nilfs_sync_fs(struct super_block *sb, int wait)
|
||||
{
|
||||
struct nilfs_sb_info *sbi = NILFS_SB(sb);
|
||||
struct the_nilfs *nilfs = sbi->s_nilfs;
|
||||
int err = 0;
|
||||
|
||||
nilfs_write_super(sb);
|
||||
|
||||
/* This function is called when super block should be written back */
|
||||
if (wait)
|
||||
err = nilfs_construct_segment(sb);
|
||||
|
||||
down_write(&nilfs->ns_sem);
|
||||
if (sb->s_dirt)
|
||||
nilfs_commit_super(sbi, 1);
|
||||
up_write(&nilfs->ns_sem);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue