36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
From: Qu Wenruo <wqu@suse.com>
|
||
|
Subject: [PATCH] btrfs-progs: convert: Fix a bug in rollback check which overwrite return value
|
||
|
Path-mainline: Will land in v4.14.1.
|
||
|
|
||
|
Commit 1170ac307900 ("btrfs-progs: convert: Introduce function to check if
|
||
|
convert image is able to be rolled back") reworked rollback check
|
||
|
condition, by checking 1:1 mapping of each file extent.
|
||
|
|
||
|
The idea itself has nothing wrong, but error handler is not implemented
|
||
|
correctly, which over writes the return value and always try to rollback
|
||
|
the fs even it fails to pass the check.
|
||
|
|
||
|
Fix it by correctly return the error before rollback the fs.
|
||
|
|
||
|
Fixes: 1170ac307900 ("btrfs-progs: convert: Introduce function to check if convert image is able to be rolled back")
|
||
|
Reported-by: Jeff Mahoney <jeffm@suse.com>
|
||
|
Signed-off-by: Qu Wenruo <wqu@suse.com>
|
||
|
Signed-off-by: David Sterba <dsterba@suse.com>
|
||
|
---
|
||
|
convert/main.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
Index: btrfs-progs-v4.13.3/convert/main.c
|
||
|
===================================================================
|
||
|
--- btrfs-progs-v4.13.3.orig/convert/main.c
|
||
|
+++ btrfs-progs-v4.13.3/convert/main.c
|
||
|
@@ -1443,6 +1443,8 @@ next:
|
||
|
}
|
||
|
}
|
||
|
btrfs_release_path(&path);
|
||
|
+ if (ret)
|
||
|
+ return ret;
|
||
|
/*
|
||
|
* For HOLES mode (without NO_HOLES), we must ensure file extents
|
||
|
* cover the whole range of the image
|