aboutsummaryrefslogtreecommitdiffstats
path: root/disk-io.c
diff options
context:
space:
mode:
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>2013-09-18 16:27:34 +0800
committerChris Mason <chris.mason@fusionio.com>2013-10-16 08:22:26 -0400
commit77801d34d02e04ea4d5344415015a2ce84e0b653 (patch)
tree6808d39403622ac4129d2090aa02ef7bdeb07e58 /disk-io.c
parente353813b7c7ce23d1dfa6dbc29426843ea5f8382 (diff)
downloadbtrfs-progs-77801d34d02e04ea4d5344415015a2ce84e0b653.tar.gz
btrfs-progs-77801d34d02e04ea4d5344415015a2ce84e0b653.tar.xz
btrfs-progs-77801d34d02e04ea4d5344415015a2ce84e0b653.zip
Btrfs-progs: pass flag to control whether run ioctl in btrfs_scan_for_fsid()
If some fatal superblocks are damaged, running ioctl will return failure, in this case, we should avoid run ioctl. Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'disk-io.c')
-rw-r--r--disk-io.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/disk-io.c b/disk-io.c
index bc673c2..6281569 100644
--- a/disk-io.c
+++ b/disk-io.c
@@ -911,7 +911,7 @@ void btrfs_cleanup_all_caches(struct btrfs_fs_info *fs_info)
int btrfs_scan_fs_devices(int fd, const char *path,
struct btrfs_fs_devices **fs_devices,
- u64 sb_bytenr)
+ u64 sb_bytenr, int run_ioctl)
{
u64 total_devs;
int ret;
@@ -926,7 +926,7 @@ int btrfs_scan_fs_devices(int fd, const char *path,
}
if (total_devs != 1) {
- ret = btrfs_scan_for_fsid(1);
+ ret = btrfs_scan_for_fsid(run_ioctl);
if (ret)
return ret;
}
@@ -1005,7 +1005,7 @@ static struct btrfs_fs_info *__open_ctree_fd(int fp, const char *path,
if (restore)
fs_info->on_restoring = 1;
- ret = btrfs_scan_fs_devices(fp, path, &fs_devices, sb_bytenr);
+ ret = btrfs_scan_fs_devices(fp, path, &fs_devices, sb_bytenr, 1);
if (ret)
goto out;