mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
vfs: Call ->sync_fs() even if s_dirt is 0 (version 4)
sync_filesystems() has a condition that if wait == 0 and s_dirt == 0, then ->sync_fs() isn't called. This does not really make much sence since s_dirt is generally used by a filesystem to mean that ->write_super() needs to be called. But ->sync_fs() does different things. I even suspect that some filesystems (btrfs?) sets s_dirt just to fool this logic. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
5a3e5cb8e0
commit
bfe881255c
1 changed files with 1 additions and 1 deletions
|
@ -510,7 +510,7 @@ restart:
|
||||||
sb->s_count++;
|
sb->s_count++;
|
||||||
spin_unlock(&sb_lock);
|
spin_unlock(&sb_lock);
|
||||||
down_read(&sb->s_umount);
|
down_read(&sb->s_umount);
|
||||||
if (sb->s_root && (wait || sb->s_dirt))
|
if (sb->s_root)
|
||||||
sb->s_op->sync_fs(sb, wait);
|
sb->s_op->sync_fs(sb, wait);
|
||||||
up_read(&sb->s_umount);
|
up_read(&sb->s_umount);
|
||||||
/* restart only when sb is no longer on the list */
|
/* restart only when sb is no longer on the list */
|
||||||
|
|
Loading…
Reference in a new issue