diff --git a/cmds-qgroup.c b/cmds-qgroup.c index 59a5926b..d0f10dd4 100644 --- a/cmds-qgroup.c +++ b/cmds-qgroup.c @@ -382,9 +382,11 @@ static int cmd_qgroup_show(int argc, char **argv) qgroupid); } ret = btrfs_show_qgroups(fd, filter_set, comparer_set); - close_file_or_dir(fd, dirstream); - if (ret < 0) + if (ret == -ENOENT) + error("can't list qgroups: quotas not enabled"); + else if (ret < 0) error("can't list qgroups: %s", strerror(-ret)); + close_file_or_dir(fd, dirstream); out: return !!ret; diff --git a/qgroup.c b/qgroup.c index 21526cec..fffdbb12 100644 --- a/qgroup.c +++ b/qgroup.c @@ -1064,11 +1064,9 @@ static int __qgroups_search(int fd, struct qgroup_lookup *qgroup_lookup) while (1) { ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args); - if (ret < 0) { - error("cannot perform the search: %s", - strerror(errno)); + if (ret < 0) return -errno; - } + /* the ioctl returns the number of item it found in nr_items */ if (sk->nr_items == 0) break;