[1/3] btrfs-progs: check option conflict for btrfs-convert
diff mbox

Message ID 1407378959-23728-1-git-send-email-guihc.fnst@cn.fujitsu.com
State Accepted
Headers show

Commit Message

Gui Hecheng Aug. 7, 2014, 2:35 a.m. UTC
The -d, -i, -n options make no sense to rollback.
Check the improper usages such as:
	# btrfs-convert -r -d <dev>

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
---
 btrfs-convert.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Patch
diff mbox

diff --git a/btrfs-convert.c b/btrfs-convert.c
index 952e3e6..2ea6a09 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,18 @@  int main(int argc, char *argv[])
 		return 1;
 	}
 
+	if (rollback) {
+		if (!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) {