Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:ARM
btrfsprogs
0118-Btrfs-progs-try-other-mirrors-on-read-fail...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0118-Btrfs-progs-try-other-mirrors-on-read-failure.patch of Package btrfsprogs
From ff0e1b17030a9b1e027c8b77f67ab44136e172ac Mon Sep 17 00:00:00 2001 From: Josef Bacik <josef@redhat.com> Date: Mon, 7 Nov 2011 16:41:01 -0500 Subject: [PATCH 19/35] Btrfs-progs: try other mirrors on read failure If we hit a bad disk and the read doesn't work, try other mirrors in case we have other disks with good copies. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> --- restore.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/restore.c b/restore.c index f062a2b..4dabae2 100644 --- a/restore.c +++ b/restore.c @@ -244,9 +244,16 @@ again: done = pread(dev_fd, inbuf+count, length, dev_bytenr); if (done < length) { - ret = -1; - fprintf(stderr, "Short read %d\n", errno); - goto out; + num_copies = btrfs_num_copies(&root->fs_info->mapping_tree, + bytenr, length); + mirror_num++; + if (mirror_num >= num_copies) { + ret = -1; + fprintf(stderr, "Exhausted mirrors trying to read\n"); + goto out; + } + fprintf(stderr, "Trying another mirror\n"); + goto again; } count += length; -- 1.7.6.233.gd79bc
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor