Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'bcachefs-2025-07-24' of git://evilpiepirate.org/bcachefs

Pull bcachefs fixes from Kent Overstreet:
"User reported fixes:

- Fix btree node scan on encrypted filesystems by not using btree
node header fields encrypted

- Fix a race in btree write buffer flush; this caused EROs primarily
during fsck for some people"

* tag 'bcachefs-2025-07-24' of git://evilpiepirate.org/bcachefs:
bcachefs: Add missing snapshots_seen_add_inorder()
bcachefs: Fix write buffer flushing from open journal entry
bcachefs: btree_node_scan: don't re-read before initializing found_btree_node

+15 -13
+8 -8
fs/bcachefs/btree_node_scan.c
··· 168 168 if (BTREE_NODE_ID(bn) >= BTREE_ID_NR_MAX) 169 169 return; 170 170 171 - bio_reset(bio, ca->disk_sb.bdev, REQ_OP_READ); 172 - bio->bi_iter.bi_sector = offset; 173 - bch2_bio_map(bio, b->data, c->opts.btree_node_size); 174 - 175 - submit_time = local_clock(); 176 - submit_bio_wait(bio); 177 - bch2_account_io_completion(ca, BCH_MEMBER_ERROR_read, submit_time, !bio->bi_status); 178 - 179 171 rcu_read_lock(); 180 172 struct found_btree_node n = { 181 173 .btree_id = BTREE_NODE_ID(bn), ··· 183 191 .ptrs[0].gen = bucket_gen_get(ca, sector_to_bucket(ca, offset)), 184 192 }; 185 193 rcu_read_unlock(); 194 + 195 + bio_reset(bio, ca->disk_sb.bdev, REQ_OP_READ); 196 + bio->bi_iter.bi_sector = offset; 197 + bch2_bio_map(bio, b->data, c->opts.btree_node_size); 198 + 199 + submit_time = local_clock(); 200 + submit_bio_wait(bio); 201 + bch2_account_io_completion(ca, BCH_MEMBER_ERROR_read, submit_time, !bio->bi_status); 186 202 187 203 found_btree_node_to_key(&b->key, &n); 188 204
+6 -5
fs/bcachefs/fsck.c
··· 1920 1920 "extent type past end of inode %llu:%u, i_size %llu\n%s", 1921 1921 i->inode.bi_inum, i->inode.bi_snapshot, i->inode.bi_size, 1922 1922 (bch2_bkey_val_to_text(&buf, c, k), buf.buf))) { 1923 - ret = bch2_fpunch_snapshot(trans, 1924 - SPOS(i->inode.bi_inum, 1925 - last_block, 1926 - i->inode.bi_snapshot), 1927 - POS(i->inode.bi_inum, U64_MAX)); 1923 + ret = snapshots_seen_add_inorder(c, s, i->inode.bi_snapshot) ?: 1924 + bch2_fpunch_snapshot(trans, 1925 + SPOS(i->inode.bi_inum, 1926 + last_block, 1927 + i->inode.bi_snapshot), 1928 + POS(i->inode.bi_inum, U64_MAX)); 1928 1929 if (ret) 1929 1930 goto err; 1930 1931
+1
fs/bcachefs/journal.c
··· 1082 1082 1083 1083 if (open && !*blocked) { 1084 1084 __bch2_journal_block(j); 1085 + s.v = atomic64_read_acquire(&j->reservations.counter); 1085 1086 *blocked = true; 1086 1087 } 1087 1088