btrfs-progs: don't fall back to recursive /dev scan
authorEric Sandeen <sandeen@redhat.com>
Wed, 20 Aug 2014 22:23:20 +0000 (17:23 -0500)
committerDavid Sterba <dsterba@suse.cz>
Fri, 10 Oct 2014 07:32:13 +0000 (09:32 +0200)
If we didn't find what we are looking for in /proc/partitions,
we're not going to find it by scanning every node under /dev, either.

But that's just what btrfs_scan_for_fsid() does.

Remove that fallback; at that point btrfs_scan_for_fsid() just calls
scan_for_btrfs(), so remove the wrapper & call it directly.

Side note: so, these paths always use /proc/partitions, not libblkid.
Userspace-intiated scans default to libblkid.  I presume this is
part of the design, and intentional?  Anyway, not changing it now!

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
disk-io.c
utils.c

index 34c0a97..e0e7701 100644 (file)
--- a/disk-io.c
+++ b/disk-io.c
@@ -1002,7 +1002,7 @@ int btrfs_scan_fs_devices(int fd, const char *path,
        }
 
        if (total_devs != 1) {
-               ret = btrfs_scan_for_fsid(run_ioctl);
+               ret = scan_for_btrfs(BTRFS_SCAN_PROC, run_ioctl);
                if (ret)
                        return ret;
        }
diff --git a/utils.c b/utils.c
index c4f2a00..cb9e514 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -1148,7 +1148,7 @@ int check_mounted_where(int fd, const char *file, char *where, int size,
 
        /* scan other devices */
        if (is_btrfs && total_devs > 1) {
-               if ((ret = btrfs_scan_for_fsid(!BTRFS_UPDATE_KERNEL)))
+               if ((ret = scan_for_btrfs(BTRFS_SCAN_PROC, !BTRFS_UPDATE_KERNEL)))
                        return ret;
        }
 
@@ -1336,16 +1336,6 @@ fail:
        return ret;
 }
 
-int btrfs_scan_for_fsid(int run_ioctls)
-{
-       int ret;
-
-       ret = scan_for_btrfs(BTRFS_SCAN_PROC, run_ioctls);
-       if (ret)
-               ret = scan_for_btrfs(BTRFS_SCAN_DEV, run_ioctls);
-       return ret;
-}
-
 int btrfs_device_already_in_root(struct btrfs_root *root, int fd,
                                 int super_offset)
 {