md: load/store badblock list from v1.x metadata
Space must have been allocated when array was created. A feature flag is set when the badblock list is non-empty, to ensure old kernels don't load and trust the whole device. We only update the on-disk badblocklist when it has changed. If the badblocklist (or other metadata) is stored on a bad block, we don't cope very well. If metadata has no room for bad block, flag bad-blocks as disabled, and do the same for 0.90 metadata. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
@@ -55,7 +55,7 @@ struct mdk_rdev_s
|
||||
struct block_device *meta_bdev;
|
||||
struct block_device *bdev; /* block device handle */
|
||||
|
||||
struct page *sb_page;
|
||||
struct page *sb_page, *bb_page;
|
||||
int sb_loaded;
|
||||
__u64 sb_events;
|
||||
sector_t data_offset; /* start of data in array */
|
||||
@@ -127,6 +127,9 @@ struct mdk_rdev_s
|
||||
u64 *page; /* badblock list */
|
||||
int changed;
|
||||
seqlock_t lock;
|
||||
|
||||
sector_t sector;
|
||||
sector_t size; /* in sectors */
|
||||
} badblocks;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user