exfat: fix timing of synchronizing bitmap and inode
Commit(f55c096f62
exfat: do not zero the extended part) changed the timing of synchronizing bitmap and inode in exfat_cont_expand(). The change caused xfstests generic/013 to fail if 'dirsync' or 'sync' is enabled. So this commit restores the timing. Fixes:f55c096f62
("exfat: do not zero the extended part") Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
4cece76496
commit
d7ed5232f0
@ -51,7 +51,7 @@ static int exfat_cont_expand(struct inode *inode, loff_t size)
|
||||
clu.flags = ei->flags;
|
||||
|
||||
ret = exfat_alloc_cluster(inode, new_num_clusters - num_clusters,
|
||||
&clu, IS_DIRSYNC(inode));
|
||||
&clu, inode_needs_sync(inode));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -77,12 +77,11 @@ out:
|
||||
ei->i_size_aligned = round_up(size, sb->s_blocksize);
|
||||
ei->i_size_ondisk = ei->i_size_aligned;
|
||||
inode->i_blocks = round_up(size, sbi->cluster_size) >> 9;
|
||||
|
||||
if (IS_DIRSYNC(inode))
|
||||
return write_inode_now(inode, 1);
|
||||
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
if (IS_SYNC(inode))
|
||||
return write_inode_now(inode, 1);
|
||||
|
||||
return 0;
|
||||
|
||||
free_clu:
|
||||
|
Loading…
Reference in New Issue
Block a user