diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2014-07-23 13:47:35 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-08-22 15:07:02 +0200 |
commit | de22c28ef31d9721606ba05965a093a8044be0de (patch) | |
tree | 2c5e2c942d927463160bf8c2b46e1c76d548d7be /cmds-send.c | |
parent | 10c8f34f519451d763ae6b40bd388d11f4d3d42f (diff) | |
download | btrfs-progs-de22c28ef31d9721606ba05965a093a8044be0de.tar.gz |
btrfs-progs: Check fstype in find_mount_root()
When calling find_mount_root(), caller in fact wants to find the mount
point of *BTRFS*.
So also check ent->fstype in find_mount_root() and do special error
string output in caller.
This will suppress a lot of "Inapproiate ioctl for device" error
message.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'cmds-send.c')
-rw-r--r-- | cmds-send.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cmds-send.c b/cmds-send.c index 9ec52dc..7141c07 100644 --- a/cmds-send.c +++ b/cmds-send.c @@ -355,6 +355,13 @@ static int init_root_path(struct btrfs_send *s, const char *subvol) ret = -EINVAL; goto out; } + if (ret > 0) { + fprintf(stderr, + "ERROR: %s doesn't belong to btrfs mount point\n", + subvol); + ret = -EINVAL; + goto out; + } s->mnt_fd = open(s->root_path, O_RDONLY | O_NOATIME); if (s->mnt_fd < 0) { @@ -587,6 +594,13 @@ int cmd_send(int argc, char **argv) strerror(-ret)); goto out; } + if (ret > 0) { + fprintf(stderr, + "ERROR: %s doesn't belong to btrfs mount point\n", + subvol); + ret = -EINVAL; + goto out; + } if (strcmp(send.root_path, mount_root) != 0) { ret = -EINVAL; fprintf(stderr, "ERROR: all subvols must be from the " |