From 2b2337830c6bfa2f3dc15bab3ca04ed2a5cc7a25 Mon Sep 17 00:00:00 2001 From: Gui Hecheng Date: Thu, 7 Aug 2014 10:35:57 +0800 Subject: btrfs-progs: check option conflict for btrfs-convert The -d, -i, -n options make no sense to rollback. Check the improper usages such as: # btrfs-convert -r -d Signed-off-by: Gui Hecheng Signed-off-by: David Sterba --- btrfs-convert.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'btrfs-convert.c') diff --git a/btrfs-convert.c b/btrfs-convert.c index 952e3e6f..b30b91b3 100644 --- a/btrfs-convert.c +++ b/btrfs-convert.c @@ -2699,6 +2699,7 @@ int main(int argc, char *argv[]) int noxattr = 0; int datacsum = 1; int rollback = 0; + int usage_error = 0; char *file; while(1) { int c = getopt(argc, argv, "dinr"); @@ -2729,6 +2730,17 @@ int main(int argc, char *argv[]) return 1; } + if (rollback && (!datacsum || noxattr || !packing)) { + fprintf(stderr, + "Usage error: -d, -i, -n options do not apply to rollback\n"); + usage_error++; + } + + if (usage_error) { + print_usage(); + return 1; + } + file = argv[optind]; ret = check_mounted(file); if (ret < 0) { -- cgit v1.2.3