Skip to content

Commit c763c43

Browse files
committed
Merge tag 'bcachefs-2024-09-04' of git://evilpiepirate.org/bcachefs
Pull bcachefs fixes from Kent Overstreet: - Fix a typo in the rebalance accounting changes - BCH_SB_MEMBER_INVALID: small on disk format feature which will be needed for full erasure coding support; this is only the minimum so that 6.11 can handle future versions without barfing. * tag 'bcachefs-2024-09-04' of git://evilpiepirate.org/bcachefs: bcachefs: BCH_SB_MEMBER_INVALID bcachefs: fix rebalance accounting
2 parents 2adad54 + 53f6619 commit c763c43

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

fs/bcachefs/buckets.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ int bch2_trigger_extent(struct btree_trans *trans,
876876
need_rebalance_delta -= s != 0;
877877
need_rebalance_sectors_delta -= s;
878878

879-
s = bch2_bkey_sectors_need_rebalance(c, old);
879+
s = bch2_bkey_sectors_need_rebalance(c, new.s_c);
880880
need_rebalance_delta += s != 0;
881881
need_rebalance_sectors_delta += s;
882882

fs/bcachefs/replicas.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r,
8282
}
8383

8484
for (unsigned i = 0; i < r->nr_devs; i++)
85-
if (!bch2_member_exists(sb, r->devs[i])) {
85+
if (r->devs[i] != BCH_SB_MEMBER_INVALID &&
86+
!bch2_member_exists(sb, r->devs[i])) {
8687
prt_printf(err, "invalid device %u in entry ", r->devs[i]);
8788
goto bad;
8889
}

fs/bcachefs/sb-members.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
void bch2_dev_missing(struct bch_fs *c, unsigned dev)
1313
{
14-
bch2_fs_inconsistent(c, "pointer to nonexistent device %u", dev);
14+
if (dev != BCH_SB_MEMBER_INVALID)
15+
bch2_fs_inconsistent(c, "pointer to nonexistent device %u", dev);
1516
}
1617

1718
void bch2_dev_bucket_missing(struct bch_fs *c, struct bpos bucket)

fs/bcachefs/sb-members_format.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
*/
99
#define BCH_SB_MEMBERS_MAX 64
1010

11+
/*
12+
* Sentinal value - indicates a device that does not exist
13+
*/
14+
#define BCH_SB_MEMBER_INVALID 255
15+
1116
#define BCH_MIN_NR_NBUCKETS (1 << 6)
1217

1318
#define BCH_IOPS_MEASUREMENTS() \

0 commit comments

Comments
 (0)