# git rev-parse -q --verify 720261cfc7329406a50c2a8536e0039b9dd9a4e5^{commit} 720261cfc7329406a50c2a8536e0039b9dd9a4e5 already have revision, skipping fetch # git checkout -q -f -B kisskb 720261cfc7329406a50c2a8536e0039b9dd9a4e5 # git clean -qxdf # < git log -1 # commit 720261cfc7329406a50c2a8536e0039b9dd9a4e5 # Merge: 4f40c636b291 a97b43fac5b9 # Author: Linus Torvalds # Date: Thu Jul 18 17:27:43 2024 -0700 # # Merge tag 'bcachefs-2024-07-18.2' of https://evilpiepirate.org/git/bcachefs # # Pull bcachefs updates from Kent Overstreet: # # - Metadata version 1.8: Stripe sectors accounting, BCH_DATA_unstriped # # This splits out the accounting of dirty sectors and stripe sectors in # alloc keys; this lets us see stripe buckets that still have unstriped # data in them. # # This is needed for ensuring that erasure coding is working correctly, # as well as completing stripe creation after a crash. # # - Metadata version 1.9: Disk accounting rewrite # # The previous disk accounting scheme relied heavily on percpu counters # that were also sharded by outstanding journal buffer; it was fast but # not extensible or scalable, and meant that all accounting counters # were recorded in every journal entry. # # The new disk accounting scheme stores accounting as normal btree # keys; updates are deltas until they are flushed by the btree write # buffer. # # This means we have no practical limit on the number of counters, and # a new tagged union format that's easy to extend. # # We now have counters for compression type/ratio, per-snapshot-id # usage, per-btree-id usage, and pending rebalance work. # # - Self healing on read IO/checksum error # # Data is now automatically rewritten if we get a read error and then a # successful retry # # - Mount API conversion (thanks to Thomas Bertschinger) # # - Better lockdep coverage # # Previously, btree node locks were tracked individually by lockdep, # like any other lock. But we may take _many_ btree node locks # simultaneously, we easily blow through the limit of 48 locks that # lockdep can track, leading to lockdep turning itself off. # # Tracking each btree node lock individually isn't really necessary # since we have our own cycle detector for deadlock avoidance and # centralized tracking of btree node locks, so we now have a single # lockdep_map in btree_trans for "any btree nodes are locked". # # - Some more small incremental work towards online check_allocations # # - Lots more debugging improvements # # - Fixes, including: # - undefined behaviour fixes, originally noted as breaking userspace # LTO builds # - fix a spurious warning in fsck_err, reported by Marcin # - fix an integer overflow on trans->nr_updates, also reported by # Marcin; this broke during deletion of highly fragmented indirect # extents # # * tag 'bcachefs-2024-07-18.2' of https://evilpiepirate.org/git/bcachefs: (120 commits) # lockdep: Add comments for lockdep_set_no{validate,track}_class() # bcachefs: Fix integer overflow on trans->nr_updates # bcachefs: silence silly kdoc warning # bcachefs: Fix fsck warning about btree_trans not passed to fsck error # bcachefs: Add an error message for insufficient rw journal devs # bcachefs: varint: Avoid left-shift of a negative value # bcachefs: darray: Don't pass NULL to memcpy() # bcachefs: Kill bch2_assert_btree_nodes_not_locked() # bcachefs: Rename BCH_WRITE_DONE -> BCH_WRITE_SUBMITTED # bcachefs: __bch2_read(): call trans_begin() on every loop iter # bcachefs: show none if label is not set # bcachefs: drop packed, aligned from bkey_inode_buf # bcachefs: btree node scan: fall back to comparing by journal seq # bcachefs: Add lockdep support for btree node locks # lockdep: lockdep_set_notrack_class() # bcachefs: Improve copygc_wait_to_text() # bcachefs: Convert clock code to u64s # bcachefs: Improve startup message # bcachefs: Self healing on read IO error # bcachefs: Make read_only a mount option again, but hidden # ... # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 720261cfc7329406a50c2a8536e0039b9dd9a4e5 # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- allnoconfig # < make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_allnoconfig_x86_64-gcc8 # Build took: 0:01:23.952354