1a7e21fe38
- Fix rollback regression which can lead to data corruption * rollback-regression-fix.patch (bsc#1069478, upstream: "Subject: [PATCH] btrfs-progs: convert: Fix a bug in rollback check which overwrite return value") Would land in upstream v4.14.1. OBS-URL: https://build.opensuse.org/request/show/558516 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=280
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
|