From: Goffredo Baroncelli <kreijack@xxxxxxxxx>
Add a check in some btrfs subcommands to detect if a filesystem
has mixed profiles for data/metadata/system. In this case
a warning is showed.
Signed-off-by: Goffredo Baroncelli <kreijack@xxxxxxxxx>
---
cmds/balance.c | 2 ++
cmds/device.c | 3 +++
cmds/filesystem-usage.c | 1 +
cmds/filesystem.c | 1 +
4 files changed, 7 insertions(+)
diff --git a/cmds/balance.c b/cmds/balance.c
index 5392a604..20d0ebc1 100644
--- a/cmds/balance.c
+++ b/cmds/balance.c
@@ -716,6 +716,7 @@ static int cmd_balance_pause(const struct cmd_struct *cmd,
ret = 1;
}
+ btrfs_check_for_mixed_profiles_by_fd(fd);
close_file_or_dir(fd, dirstream);
return ret;
}
@@ -756,6 +757,7 @@ static int cmd_balance_cancel(const struct cmd_struct *cmd,
ret = 1;
}
+ btrfs_check_for_mixed_profiles_by_fd(fd);
close_file_or_dir(fd, dirstream);
return ret;
}
diff --git a/cmds/device.c b/cmds/device.c
index 24158308..d83f92a7 100644
--- a/cmds/device.c
+++ b/cmds/device.c
@@ -143,6 +143,7 @@ static int cmd_device_add(const struct cmd_struct *cmd,
}
error_out:
+ btrfs_check_for_mixed_profiles_by_fd(fdmnt);
close_file_or_dir(fdmnt, dirstream);
return !!ret;
}
@@ -225,6 +226,7 @@ static int _cmd_device_remove(const struct cmd_struct *cmd,
}
}
+ btrfs_check_for_mixed_profiles_by_fd(fdmnt);
close_file_or_dir(fdmnt, dirstream);
return !!ret;
}
@@ -659,6 +661,7 @@ static int cmd_device_usage(const struct cmd_struct *cmd, int argc, char **argv)
}
ret = _cmd_device_usage(fd, argv[i], unit_mode);
+ btrfs_check_for_mixed_profiles_by_fd(fd);
close_file_or_dir(fd, dirstream);
if (ret)
diff --git a/cmds/filesystem-usage.c b/cmds/filesystem-usage.c
index aa7065d5..ce07d80f 100644
--- a/cmds/filesystem-usage.c
+++ b/cmds/filesystem-usage.c
@@ -1043,6 +1043,7 @@ static int cmd_filesystem_usage(const struct cmd_struct *cmd,
ret = print_filesystem_usage_by_chunk(fd, chunkinfo, chunkcount,
devinfo, devcount, argv[i], unit_mode, tabular);
cleanup:
+ btrfs_check_for_mixed_profiles_by_fd(fd);
close_file_or_dir(fd, dirstream);
free(chunkinfo);
free(devinfo);
diff --git a/cmds/filesystem.c b/cmds/filesystem.c
index 4f22089a..c4bb13dd 100644
--- a/cmds/filesystem.c
+++ b/cmds/filesystem.c
@@ -111,6 +111,7 @@ static int cmd_filesystem_df(const struct cmd_struct *cmd,
error("get_df failed: %m");
}
+ btrfs_check_for_mixed_profiles_by_fd(fd);
close_file_or_dir(fd, dirstream);
return !!ret;
}
--
2.26.0