path: root/btrfstune.c
diff options
authorDavid Sterba <>2018-06-18 18:15:12 +0200
committerDavid Sterba <>2018-08-07 11:18:54 +0200
commita8985f549cb897e28999bf3d8cdac78cc2d1555e (patch)
treeb2379f578e535c120a78bfe88754fa140e3df890 /btrfstune.c
parent7faaca0d9f78f7162ae603231f693dd8e1af2a41 (diff)
btrfs-progs: btrfstune: allow to continue uuid change
When the 'btrfsune -u' command is interrupted, the final filesystem fsid is not written to the superblock and it cannot be mounted. Too bad that 'btrfstune' cannot continue to finish the UUID change as it should. This patch fixes that and passes the relaxed flags for superblock and only warns when it detects the fsid mismatch. As this is something that should be noted in case it would be needed for further debugging, it's not just silent. Signed-off-by: David Sterba <>
Diffstat (limited to 'btrfstune.c')
1 files changed, 5 insertions, 4 deletions
diff --git a/btrfstune.c b/btrfstune.c
index 889b931c..eb13b7be 100644
--- a/btrfstune.c
+++ b/btrfstune.c
@@ -474,7 +474,8 @@ int main(int argc, char *argv[])
return 1;
- ret = check_mounted_where(fd, device, NULL, 0, NULL, SBREAD_DEFAULT);
+ ret = check_mounted_where(fd, device, NULL, 0, NULL,
if (ret < 0) {
error("could not check mount status of %s: %s", device,
@@ -521,9 +522,9 @@ int main(int argc, char *argv[])
if (random_fsid || new_fsid_str) {
if (!force) {
- "it's highly recommended to run 'btrfs check' before this operation");
- warning(
- "also canceling running UUID change progress may cause corruption");
+"it's recommended to run 'btrfs check --readonly' before this operation.\n"
+"\tThe whole operation must finish before the filesystem can be mounted again.\n"
+"\tIf cancelled or interrupted, run 'btrfstune -u' to restart.");
ret = ask_user("We are going to change UUID, are your sure?");
if (!ret) {
fprintf(stderr, "UUID change canceled\n");