aboutsummaryrefslogtreecommitdiff
path: root/fs/sync.c
diff options
context:
space:
mode:
authorDave Airlie2022-02-14 10:52:27 +1000
committerDave Airlie2022-02-14 10:52:27 +1000
commitb9c7babe2c2e37a50aa42401b38d597ea78f506e (patch)
treedd6ec30f2583f8860e69a74e4779ac20e3f53bff /fs/sync.c
parent123db17ddff007080d464e785689fb14f94cbc7a (diff)
parent754e0b0e35608ed5206d6a67a791563c631cec07 (diff)
Backmerge tag 'v5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next
Daniel asked for this for some intel deps, so let's do it now. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'fs/sync.c')
-rw-r--r--fs/sync.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/fs/sync.c b/fs/sync.c
index 3ce8e2137f31..c7690016453e 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -29,7 +29,7 @@
*/
int sync_filesystem(struct super_block *sb)
{
- int ret;
+ int ret = 0;
/*
* We need to be protected against the filesystem going from
@@ -52,15 +52,21 @@ int sync_filesystem(struct super_block *sb)
* at a time.
*/
writeback_inodes_sb(sb, WB_REASON_SYNC);
- if (sb->s_op->sync_fs)
- sb->s_op->sync_fs(sb, 0);
+ if (sb->s_op->sync_fs) {
+ ret = sb->s_op->sync_fs(sb, 0);
+ if (ret)
+ return ret;
+ }
ret = sync_blockdev_nowait(sb->s_bdev);
- if (ret < 0)
+ if (ret)
return ret;
sync_inodes_sb(sb);
- if (sb->s_op->sync_fs)
- sb->s_op->sync_fs(sb, 1);
+ if (sb->s_op->sync_fs) {
+ ret = sb->s_op->sync_fs(sb, 1);
+ if (ret)
+ return ret;
+ }
return sync_blockdev(sb->s_bdev);
}
EXPORT_SYMBOL(sync_filesystem);