btrfs-progs: fix improper output msg for btrfs-fi-usage
authorGui Hecheng <guihc.fnst@cn.fujitsu.com>
Thu, 24 Jul 2014 03:21:54 +0000 (11:21 +0800)
committerDavid Sterba <dsterba@suse.cz>
Thu, 4 Dec 2014 15:48:12 +0000 (16:48 +0100)
commit4dc414fcfba4f6aba18f974e0745918926d91ebe
tree0b5af7f748caa9679520e892692fee3ea760fbf3
parentb11c8d639eba34d457046dd19c126e12da0865fd
btrfs-progs: fix improper output msg for btrfs-fi-usage

Even if run as root:
# su
# btrfs file usage <path> <== path exits outside the mnt point
We get the output:
WARNING: ..., run as root
WARNING: ..., run as root
ERROR:...

It is because in load_chunk_info, the errno of ioctl is not judged
but rather the ret value of ioctl is judged. And the ret value of
ioctl is -1 which happens to match -EPERM exactly.
So the outer warning is printed.

Just judge the errno of ioctl and prevent the ret value of load_chunk_info
to be -1 in other error conditions.

For load_device_info, the problem and fix is the same.
After the fix, the 'run as root' WARNINGs will not show up in this condition.

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-fi-disk_usage.c