diff options
author | Stefan Behrens <sbehrens@giantdisaster.de> | 2013-05-07 17:28:03 +0000 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-17 21:40:16 -0400 |
commit | 49688107527a24b0ed3780576257a1225902180b (patch) | |
tree | 099d5b0d92cb201c4f32c19f00d87aeff7eca6a7 /fs/btrfs/backref.c | |
parent | b1c79e0947e0c190f865e2eb7b84a0fea0021cec (diff) | |
download | linux-49688107527a24b0ed3780576257a1225902180b.tar.gz linux-49688107527a24b0ed3780576257a1225902180b.tar.bz2 linux-49688107527a24b0ed3780576257a1225902180b.zip |
Btrfs: don't allow device replace on RAID5/RAID6
This is not yet supported and causes crashes. One sad user reported
that it destroyed his filesystem.
One failure is in __btrfs_map_block+0xc1f calling kmalloc(0).
0x5f21f is in __btrfs_map_block (fs/btrfs/volumes.c:4923).
4918 num_stripes = map->num_stripes;
4919 max_errors = nr_parity_stripes(map);
4920
4921 raid_map = kmalloc(sizeof(u64) * num_stripes,
4922 GFP_NOFS);
4923 if (!raid_map) {
4924 ret = -ENOMEM;
4925 goto out;
4926 }
4927
There might be more issues. Until this is really tested, don't allow
users to start the procedure on RAID5/RAID6 filesystems.
Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/backref.c')
0 files changed, 0 insertions, 0 deletions