bcachefs: BCH_SB_MEMBER_INVALID
Create a sentinal value for "invalid device". This is needed for removing devices that have stripes on them (force removing, without evacuating); we need a sentinal value for the stripe pointers to the device being removed. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
7f12a963b6
commit
53f6619554
@ -82,7 +82,8 @@ int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r,
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < r->nr_devs; i++)
|
||||
if (!bch2_member_exists(sb, r->devs[i])) {
|
||||
if (r->devs[i] != BCH_SB_MEMBER_INVALID &&
|
||||
!bch2_member_exists(sb, r->devs[i])) {
|
||||
prt_printf(err, "invalid device %u in entry ", r->devs[i]);
|
||||
goto bad;
|
||||
}
|
||||
|
@ -11,7 +11,8 @@
|
||||
|
||||
void bch2_dev_missing(struct bch_fs *c, unsigned dev)
|
||||
{
|
||||
bch2_fs_inconsistent(c, "pointer to nonexistent device %u", dev);
|
||||
if (dev != BCH_SB_MEMBER_INVALID)
|
||||
bch2_fs_inconsistent(c, "pointer to nonexistent device %u", dev);
|
||||
}
|
||||
|
||||
void bch2_dev_bucket_missing(struct bch_fs *c, struct bpos bucket)
|
||||
|
@ -8,6 +8,11 @@
|
||||
*/
|
||||
#define BCH_SB_MEMBERS_MAX 64
|
||||
|
||||
/*
|
||||
* Sentinal value - indicates a device that does not exist
|
||||
*/
|
||||
#define BCH_SB_MEMBER_INVALID 255
|
||||
|
||||
#define BCH_MIN_NR_NBUCKETS (1 << 6)
|
||||
|
||||
#define BCH_IOPS_MEASUREMENTS() \
|
||||
|
Loading…
Reference in New Issue
Block a user