Skip to content

Commit

Permalink
Merge tag 'bcachefs-2024-09-04' of git://evilpiepirate.org/bcachefs
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Linus Torvalds committed Sep 4, 2024
2 parents 2adad54 + 53f6619 commit c763c43
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 3 deletions.
2 changes: 1 addition & 1 deletion fs/bcachefs/buckets.c
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,7 @@ int bch2_trigger_extent(struct btree_trans *trans,
need_rebalance_delta -= s != 0;
need_rebalance_sectors_delta -= s;

s = bch2_bkey_sectors_need_rebalance(c, old);
s = bch2_bkey_sectors_need_rebalance(c, new.s_c);
need_rebalance_delta += s != 0;
need_rebalance_sectors_delta += s;

Expand Down
3 changes: 2 additions & 1 deletion fs/bcachefs/replicas.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
3 changes: 2 additions & 1 deletion fs/bcachefs/sb-members.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions fs/bcachefs/sb-members_format.h
Original file line number Diff line number Diff line change
Expand Up @@ -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() \
Expand Down

0 comments on commit c763c43

Please sign in to comment.