On Wed, Nov 15, 2017 at 04:28:11PM -0700, Liu Bo wrote: > We've avoided data losing raid profile when doing balance, but it > turns out that deleting a device could also result in the same > problem. > > Say we have 3 disks, and they're created with '-d raid1' profile. > > - We have chunk P (the only data chunk on the empty btrfs). > > - Suppose that chunk P's two raid1 copies reside in disk A and disk B. > > - Now, 'btrfs device remove disk B' > btrfs_rm_device() > -> btrfs_shrink_device() > -> btrfs_relocate_chunk() #relocate any chunk on disk B > to other places. > > - Chunk P will be removed and a new chunk will be created to hold > those data, but as chunk P is the only one holding raid1 profile, > after it goes away, the new chunk will be created as single profile > which is our default profile. > > This fixes the problem by creating an empty data chunk before > relocating the data chunk. > > Metadata/System chunk are supposed to have non-zero bytes all the time > so their raid profile is preserved. > > Reported-by: James Alandt <james.ala...@wdc.com> > Signed-off-by: Liu Bo <bo.li....@oracle.com>
Added to 4.16 queue, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html