]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bdev: surface the error from sync_blockdev()
authorChristian Brauner <brauner@kernel.org>
Tue, 24 Oct 2023 13:01:09 +0000 (15:01 +0200)
committerChristian Brauner <brauner@kernel.org>
Sat, 18 Nov 2023 13:59:23 +0000 (14:59 +0100)
When freeze_super() is called, sync_filesystem() will be called which
calls sync_blockdev() and already surfaces any errors. Do the same for
block devices that aren't owned by a superblock and also for filesystems
that don't call sync_blockdev() internally but implicitly rely on
bdev_freeze() to do it.

Link: https://lore.kernel.org/r/20231024-vfs-super-freeze-v2-3-599c19f4faac@kernel.org
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
block/bdev.c

index a890da1b3adfe8c7edad27428f497dd74e0b85a0..f27f1a7db2bd52bc4799fee414681671dfaf1e94 100644 (file)
@@ -245,7 +245,7 @@ int bdev_freeze(struct block_device *bdev)
        bdev->bd_fsfreeze_sb = sb;
 
 sync:
-       sync_blockdev(bdev);
+       error = sync_blockdev(bdev);
 done:
        mutex_unlock(&bdev->bd_fsfreeze_mutex);
        return error;