btrfs-progs: fix improper error prompt for defragment
authorGui Hecheng <guihc.fnst@cn.fujitsu.com>
Wed, 11 Dec 2013 09:27:46 +0000 (17:27 +0800)
committerChris Mason <clm@fb.com>
Fri, 31 Jan 2014 16:22:13 +0000 (08:22 -0800)
The error msg:
"ERROR: defrag range ioctl not supported in this kernel,
 please try without any options."
should only show up when failing to do a range defraging,
not upon non-range defraging.

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
cmds-filesystem.c

index 8e4754f..0f29afc 100644 (file)
@@ -687,7 +687,7 @@ static int defrag_callback(const char *fpath, const struct stat *sb,
                ret = do_defrag(fd, defrag_global_fancy_ioctl, &defrag_global_range);
                e = errno;
                close(fd);
-               if (ret && e == ENOTTY) {
+               if (ret && e == ENOTTY && defrag_global_fancy_ioctl) {
                        fprintf(stderr, "ERROR: defrag range ioctl not "
                                "supported in this kernel, please try "
                                "without any options.\n");
@@ -820,7 +820,7 @@ static int cmd_defrag(int argc, char **argv)
                        e = errno;
                }
                close_file_or_dir(fd, dirstream);
-               if (ret && e == ENOTTY) {
+               if (ret && e == ENOTTY && defrag_global_fancy_ioctl) {
                        fprintf(stderr, "ERROR: defrag range ioctl not "
                                "supported in this kernel, please try "
                                "without any options.\n");