aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch')
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch64
1 files changed, 0 insertions, 64 deletions
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch
deleted file mode 100644
index e4665335ee..0000000000
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-for-dragonn/0001-Fill-missing-devices-so-degraded-filesystems-can-be-.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Upstream-Status: Inappropriate [Backport]
-From a6c54702d8973aef081cff81ed8d90427bb21768 Mon Sep 17 00:00:00 2001
-From: Chris Mason <chris.mason@oracle.com>
-Date: Wed, 15 Dec 2010 16:00:23 -0500
-Subject: [PATCH 1/5] Fill missing devices so degraded filesystems can be read
-
-When a device is missing, the btrfs tools need to be able to read alternate
-copies from the remaining devices. This creates placeholder devices
-that always return -EIO so the tools can limp along.
-
-Signed-off-by: Chris Mason <chris.mason@oracle.com>
----
- disk-io.c | 1 +
- volumes.c | 15 +++++++++++++--
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/disk-io.c b/disk-io.c
-index 5bd9cfc..f4368f3 100644
---- a/disk-io.c
-+++ b/disk-io.c
-@@ -204,6 +204,7 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
- eb->dev_bytenr = multi->stripes[0].physical;
- kfree(multi);
- ret = read_extent_from_disk(eb);
-+
- if (ret == 0 && check_tree_block(root, eb) == 0 &&
- csum_tree_block(root, eb, 1) == 0 &&
- verify_parent_transid(eb->tree, eb, parent_transid) == 0) {
-diff --git a/volumes.c b/volumes.c
-index 4bb77e2..5773467 100644
---- a/volumes.c
-+++ b/volumes.c
-@@ -1263,6 +1263,16 @@ int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset)
- return readonly;
- }
-
-+static struct btrfs_device *fill_missing_device(u64 devid)
-+{
-+ struct btrfs_device *device;
-+
-+ device = kzalloc(sizeof(*device), GFP_NOFS);
-+ device->devid = devid;
-+ device->fd = -1;
-+ return device;
-+}
-+
- static int read_one_chunk(struct btrfs_root *root, struct btrfs_key *key,
- struct extent_buffer *leaf,
- struct btrfs_chunk *chunk)
-@@ -1313,8 +1323,9 @@ static int read_one_chunk(struct btrfs_root *root, struct btrfs_key *key,
- map->stripes[i].dev = btrfs_find_device(root, devid, uuid,
- NULL);
- if (!map->stripes[i].dev) {
-- kfree(map);
-- return -EIO;
-+ map->stripes[i].dev = fill_missing_device(devid);
-+ printf("warning, device %llu is missing\n",
-+ (unsigned long long)devid);
- }
-
- }
---
-1.7.2.3
-