mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
bcachefs fixes for 6.11-rc1
- another fix for fsck getting stuck, from marcin - small syzbot fix - another undefined shift fix -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEKnAFLkS8Qha+jvQrE6szbY3KbnYFAmaekrUACgkQE6szbY3K bnZoLg//Sbdo0JsUJIDU3gnmyEMmWx1mvUT7MJS2EwwLpLR2t1oNcE5CB9aNdv2d fhJxjhuBnc9Z1yO83eQSinUcMGdpM3QIS3BH1dwMa2kY5jE0cfxvdoXX+2CDVzPe 6/0SgX+0Ce2X7MxQSI8Nu9RhNWtEwFqdtOoOanBWHzjBPNDC5+ZuocZAnqMyM0cu KYmtZ1lyGwa23ILwaKWuZopXj8jd62FU+X49PWpzLvOLM+1BWwYqOrL0ZgNokkLc LoalSWmdVDTXCs6dteDO++nwLoPJbcYgwv7fbB6yiHj0xs/bwRgu0FHVzd/1tjMM O8VY/9/el+EbVE2VkA6JMHe6IMRJS6Gf6c78MfwwPPtcOyinM8AVlLNa1WLH6Sjw XfCKzENnM6CHSfefY3IcYrKHQ3htdZNw7nvnz2PTwP8KejHBkOgmde3Dqhn6khKa R3U3nR9hc5lOvN6Y7EuLmw/tLvab6NjNdm5xSIo9Tpg2GjpsnITZL7hSKOAG1ua/ 7JxWGND+SrDgU/bEv+kRsOTRDgx81uOMQ1IUMmW5CwFPj61K1X3q4SBwjxeopC3Q CQ9IpkK/twLai8ENSy37HqeSzqbLCsJFILR3q68SlyE7KSuGFdR6ySHX0NYQFY1L TDTJcajUB0O23xlL7WEIyeH3pGx6+adS5YYsk0dR9s5o7UEn84g= =CKAY -----END PGP SIGNATURE----- Merge tag 'bcachefs-2024-07-22' of https://evilpiepirate.org/git/bcachefs Pull bcachefs fixes from Kent Overstreet: - another fix for fsck getting stuck, from marcin - small syzbot fix - another undefined shift fix * tag 'bcachefs-2024-07-22' of https://evilpiepirate.org/git/bcachefs: bcachefs: Fix printbuf usage while atomic bcachefs: More informative error message in reattach_inode() bcachefs: kill btree_trans_too_many_iters() in bch2_bucket_alloc_freelist() bcachefs: mean_and_variance: Avoid too-large shift amounts
This commit is contained in:
commit
dd018c238b
@ -496,12 +496,6 @@ again:
|
||||
for (alloc_cursor = max(alloc_cursor, bkey_start_offset(k.k));
|
||||
alloc_cursor < k.k->p.offset;
|
||||
alloc_cursor++) {
|
||||
ret = btree_trans_too_many_iters(trans);
|
||||
if (ret) {
|
||||
ob = ERR_PTR(ret);
|
||||
break;
|
||||
}
|
||||
|
||||
s->buckets_seen++;
|
||||
|
||||
u64 bucket = alloc_cursor & ~(~0ULL << 56);
|
||||
|
@ -283,6 +283,7 @@ static int reattach_inode(struct btree_trans *trans,
|
||||
struct bch_inode_unpacked *inode,
|
||||
u32 inode_snapshot)
|
||||
{
|
||||
struct bch_fs *c = trans->c;
|
||||
struct bch_hash_info dir_hash;
|
||||
struct bch_inode_unpacked lostfound;
|
||||
char name_buf[20];
|
||||
@ -317,7 +318,7 @@ static int reattach_inode(struct btree_trans *trans,
|
||||
return ret;
|
||||
}
|
||||
|
||||
dir_hash = bch2_hash_info_init(trans->c, &lostfound);
|
||||
dir_hash = bch2_hash_info_init(c, &lostfound);
|
||||
|
||||
name = (struct qstr) QSTR(name_buf);
|
||||
|
||||
@ -330,8 +331,10 @@ static int reattach_inode(struct btree_trans *trans,
|
||||
inode->bi_subvol ?: inode->bi_inum,
|
||||
&dir_offset,
|
||||
STR_HASH_must_create);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
bch_err_msg(c, ret, "error creating dirent");
|
||||
return ret;
|
||||
}
|
||||
|
||||
inode->bi_dir = lostfound.bi_inum;
|
||||
inode->bi_dir_offset = dir_offset;
|
||||
|
@ -206,6 +206,7 @@ void bch2_journal_space_available(struct journal *j)
|
||||
|
||||
if (nr_online < metadata_replicas_required(c)) {
|
||||
struct printbuf buf = PRINTBUF;
|
||||
buf.atomic++;
|
||||
prt_printf(&buf, "insufficient writeable journal devices available: have %u, need %u\n"
|
||||
"rw journal devs:", nr_online, metadata_replicas_required(c));
|
||||
|
||||
|
@ -111,11 +111,11 @@ static inline u128_u u128_shl(u128_u i, s8 shift)
|
||||
{
|
||||
u128_u r;
|
||||
|
||||
r.lo = i.lo << shift;
|
||||
r.lo = i.lo << (shift & 63);
|
||||
if (shift < 64)
|
||||
r.hi = (i.hi << shift) | (i.lo >> (64 - shift));
|
||||
r.hi = (i.hi << (shift & 63)) | (i.lo >> (-shift & 63));
|
||||
else {
|
||||
r.hi = i.lo << (shift - 64);
|
||||
r.hi = i.lo << (-shift & 63);
|
||||
r.lo = 0;
|
||||
}
|
||||
return r;
|
||||
|
Loading…
Reference in New Issue
Block a user