[lkml]   [2010]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[071/111] Btrfs: do not mark the chunk as readonly if in degraded mode
2.6.32-stable review patch.  If anyone has any objections, please let us know.


From: Josef Bacik <>

commit f48b90756bd834dda852ff514f2690d3175b1f44 upstream.

If a RAID setup has chunks that span multiple disks, and one of those
disks has failed, btrfs_chunk_readonly will return 1 since one of the
disks in that chunk's stripes is dead and therefore not writeable. So
instead if we are in degraded mode, return 0 so we can go ahead and
allocate stuff. Without this patch all of the block groups in a RAID1
setup will end up read-only, which will mean we can't add new disks to
the array since we won't be able to make allocations.

Signed-off-by: Josef Bacik <>
Signed-off-by: Chris Mason <>
Acked-by: Jeff Mahoney <>
Signed-off-by: Greg Kroah-Hartman <>

fs/btrfs/volumes.c | 5 +++++
1 file changed, 5 insertions(+)

--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2538,6 +2538,11 @@ int btrfs_chunk_readonly(struct btrfs_ro
if (!em)
return 1;

+ if (btrfs_test_opt(root, DEGRADED)) {
+ free_extent_map(em);
+ return 0;
+ }
map = (struct map_lookup *)em->bdev;
for (i = 0; i < map->num_stripes; i++) {
if (!map->stripes[i].dev->writeable) {

 \ /
  Last update: 2010-08-12 02:37    [W:0.287 / U:1.184 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site