md/bitmap: allow a bitmap with no backing storage.
authorNeilBrown <neilb@suse.de>
Tue, 22 May 2012 03:55:08 +0000 (13:55 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 22 May 2012 03:55:08 +0000 (13:55 +1000)
commitef99bf480de9bde9d3b2afdf05324670fab4e571
tree49afa5fd6e7e8060f3601c04bb25b96e14d14a39
parent6409bb05a9831f6af36a20b97cda13059c2ef1b6
md/bitmap: allow a bitmap with no backing storage.

An md bitmap comprises two parts
 - internal counting of active writes per 'chunk'.
 - external storage of whether there are any active writes on
   each chunk

The second requires the first, but the first doesn't require the
second.

Not having backing storage means that the bitmap cannot expedite
resync after a crash, but it still allows us to expedite the recovery
of a recently-removed device.

So: allow a bitmap to exist even if there is no backing device.
In that case we default to 128M chunks.

A particular value of this is that we can remove and re-add a bitmap
(possibly of a different granularity) on a degraded array, and not
lose the information needed to fast-recover the missing device.

We don't actually activate these bitmaps yet - that will come
in a later patch.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/bitmap.c
drivers/md/md.c