The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
are available in the Git repository at:
https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2023-10-30
for you to fetch changes up to b827ac419721a106ae2fccaa40576b0594edad92:
exportfs: Change bcachefs fid_type enum to avoid conflicts (2023-10-26 16:41:00 -0400)
----------------------------------------------------------------
Initial bcachefs pull request for 6.7-rc1
Here's the bcachefs filesystem pull request.
One new patch since last week: the exportfs constants ended up
conflicting with other filesystems that are also getting added to the
global enum, so switched to new constants picked by Amir.
I'll also be sending another pull request later on in the cycle bringing
things up to date my master branch that people are currently running;
that will be restricted to fs/bcachefs/, naturally.
Testing - fstests as well as the bcachefs specific tests in ktest:
https://evilpiepirate.org/~testdashboard/ci?branch=bcachefs-for-upstream
It's also been soaking in linux-next, which resulted in a whole bunch of
smatch complaints and fixes and a patch or two from Kees.
The only new non fs/bcachefs/ patch is the objtool patch that adds
bcachefs functions to the list of noreturns. The patch that exports
osq_lock() has been dropped for now, per Ingo.
Prereq patch list:
faf1dce85275 objtool: Add bcachefs noreturns
73badee4280c lib/generic-radix-tree.c: Add peek_prev()
9492261ff246 lib/generic-radix-tree.c: Don't overflow in peek()
0fb5d567f573 MAINTAINERS: Add entry for generic-radix-tree
b414e8ecd498 closures: Add a missing include
48b7935722b8 closures: closure_nr_remaining()
ced58fc7ab9f closures: closure_wait_event()
bd0d22e41ecb MAINTAINERS: Add entry for closures
8c8d2d9670e8 bcache: move closures to lib/
957e48087dfa locking: export contention tracepoints for bcachefs six locks
21db931445d8 lib: Export errname
83feeb195592 lib/string_helpers: string_get_size() now returns characters wrote
7d672f40941a stacktrace: Export stack_trace_save_tsk
771eb4fe8b42 fs: factor out d_mark_tmpfile()
2b69987be575 sched: Add task_struct->faults_disabled_mapping
----------------------------------------------------------------
Brett Holman (9):
bcachefs: made changes to support clang, fixed a couple bugs
bcachefs: rewrote prefetch asm in gas syntax for clang compatibility
bcachefs: Fix unitialized use of a value
bcachefs: Fix 32 bit build failures
bcachefs: add progress stats to sysfs
bcachefs: Add a valgrind memcheck hint
bcachefs: Fix compiler warnings
bcachefs: Make bch_option compatible with Rust ffi
bcachefs: Fix memleak in replicas_table_update()
Brian Foster (37):
locking: export contention tracepoints for bcachefs six locks
bcachefs: don't bump key cache journal seq on nojournal commits
bcachefs: remove unused bch2_trans_log_msg()
bcachefs: use dedicated workqueue for tasks holding write refs
bcachefs: more aggressive fast path write buffer key flushing
bcachefs: gracefully unwind journal res slowpath on shutdown
bcachefs: refactor journal stuck checking into standalone helper
bcachefs: drop unnecessary journal stuck check from space calculation
bcachefs: use reservation for log messages during recovery
bcachefs: fix truncate overflow if folio is beyond EOF
bcachefs: clean up post-eof folios on -ENOSPC
bcachefs: use u64 for folio end pos to avoid overflows
bcachefs: folio pos to bch_folio_sector index helper
bcachefs: fix NULL bch_dev deref when checking bucket_gens keys
bcachefs: remove bucket_gens btree keys on device removal
bcachefs: fix accounting corruption race between reclaim and dev add
bcachefs: remove unused key cache coherency flag
bcachefs: mark journal replicas before journal write submission
bcachefs: create internal disk_groups sysfs file
bcachefs: push rcu lock down into bch2_target_to_mask()
bcachefs: don't spin in rebalance when background target is not usable
bcachefs: mark active journal devices on journal replicas gc
bcachefs: flush journal to avoid invalid dev usage entries on recovery
MAINTAINERS: add Brian Foster as a reviewer for bcachefs
bcachefs: remove duplicate code between backpointer update paths
bcachefs: remove unnecessary btree_insert_key_leaf() wrapper
bcachefs: fold bch2_trans_update_by_path_trace() into callers
bcachefs: support btree updates of prejournaled keys
bcachefs: use prejournaled key updates for write buffer flushes
bcachefs: fix up wonky error handling in bch2_seek_pagecache_hole()
bcachefs: restart journal reclaim thread on ro->rw transitions
bcachefs: add module description to fix modpost warning
bcachefs: refactor pin put helpers
bcachefs: prepare journal buf put to handle pin put
bcachefs: fix race between journal entry close and pin set
bcachefs: initial freeze/unfreeze support
bcachefs: fix crc32c checksum merge byte order problem
Chris Webb (1):
bcachefs: Return -ENOKEY/EINVAL when mount decryption fails
Christophe JAILLET (3):
bcachefs: Fix use-after-free in bch2_dev_add()
bcachefs: Remove a redundant and harmless bch2_free_super() call
bcachefs: Use struct_size()
Christopher James Halse Rogers (2):
stacktrace: Export stack_trace_save_tsk
bcachefs: Fix unused variable warning when !BCACHEFS_DEBUG
Colin Ian King (6):
bcachefs: remove redundant initialization of pointer d
bcachefs: remove redundant initialization of pointer dst
bcachefs: remove redundant initializations of variables start_offset and end_offset
bcachefs: remove duplicated assignment to variable offset_into_extent
bcachefs: remove redundant pointer q
bcachefs: Fix a handful of spelling mistakes in various messages
Dan Carpenter (7):
bcachefs: chardev: return -EFAULT if copy_to_user() fails
bcachefs: chardev: fix an integer overflow (32 bit only)
bcachefs: fix error checking in bch2_fs_alloc()
bcachefs: acl: Uninitialized variable in bch2_acl_chmod()
bcachefs: acl: Add missing check in bch2_acl_chmod()
bcachefs: fs-ioctl: Fix copy_to_user() error code
bcachefs: snapshot: Add missing assignment in bch2_delete_dead_snapshots()
Dan Robertson (17):
bcachefs: Fix oob write in __bch2_btree_node_write
bcachefs: Fix error in parsing of mount options
bcachefs: Fix possible null deref on mount
bcachefs: Fix null deref in bch2_ioctl_read_super
bcachefs: Fix out of bounds read in fs usage ioctl
bcachefs: properly initialize used values
bcachefs: statfs resports incorrect avail blocks
bcachefs: do not compile acl mod on minimal config
bcachefs: mount: fix null deref with null devname
bcachefs: ensure iter->should_be_locked is set
bcachefs: ensure iter->should_be_locked is set
bcachefs: fix ifdef for x86_64 asm
bcachefs: fix truncate without a size change
bcachefs: statfs bfree and bavail should be the same
bcachefs: Fix bch2_acl_chmod() cleanup on error
bcachefs: set disk state should check new_state
bcachefs: docs: add docs for bch2_trans_reset
Daniel B. Hill (1):
bcachefs: fix security warning in pr_name_and_units
Daniel Hill (20):
bcachefs: respect superblock discard flag.
bcachefs: Add persistent counters
bcachefs: Rename group to label for remaining strings.
bcachefs: fix __dev_available().
bcachefs: data jobs, including rebalance wait for copygc.
bcachefs: lock time stats prep work.
bcachefs: bch2_time_stats_to_text now indents properly
bcachefs: added lock held time stats
bcachefs: Mean and variance
bcachefs: time stats now uses the mean_and_variance module.
bcachefs: improve behaviour of btree_cache_scan()
bcachefs: make durability a read-write sysfs option
bcachefs: __bio_compress() fix up.
bcachefs: fix bch2_write_extent() crc corruption.
bcachefs: expose nocow_lock table in sysfs
bcachefs: handle failed data_update_init cleanup
bcachefs: don't block reads if we're promoting
bcachefs: let __bch2_btree_insert() pass in flags
bcachefs: Don't run triggers when repairing in __bch2_mark_reflink_p()
bcachefs: Reimplement repair for overlapping extents
Hunter Shaffer (4):
bcachefs: Add new helper to retrieve bch_member from sb
bcachefs: New superblock section members_v2
bcachefs: Rename bch_sb_field_members -> bch_sb_field_members_v1
bcachefs: Add iops fields to bch_member
Janpieter Sollie (1):
bcachefs: fix a possible bcachefs checksum mapping error opt-checksum enum to type-checksum enum
Jiapeng Chong (1):
bcachefs: Remove duplicate include
Josh Poimboeuf (1):
bcachefs: Remove undefined behavior in bch2_dev_buckets_reserved()
Joshua Ashton (4):
bcachefs: Add btree_trans* to inode_set_fn
bcachefs: Introduce bch2_dirent_get_name
bcachefs: Optimize bch2_dirent_name_bytes
bcachefs: Lower BCH_NAME_MAX to 512
Justin Husted (8):
bcachefs: Fix uninitialized data in bch2_gc_btree()
bcachefs: Initialize journal pad data in bch_replica_entry objects.
bcachefs: Initialize padding space after alloc bkey
bcachefs: Further padding fixes in bch2_journal_super_entries_add_common()
bcachefs: Initialize btree_node flags field in bch2_btree_root_alloc.
bcachefs: Fix uninitialized field in hash_check_init()
bcachefs: Set lost+found mode to 0700
bcachefs: Update directory timestamps during link
Kees Cook (1):
bcachefs: Refactor memcpy into direct assignment
Kent Overstreet (2635):
sched: Add task_struct->faults_disabled_mapping
fs: factor out d_mark_tmpfile()
lib/string_helpers: string_get_size() now returns characters wrote
lib: Export errname
bcache: move closures to lib/
MAINTAINERS: Add entry for closures
closures: closure_wait_event()
closures: closure_nr_remaining()
closures: Add a missing include
MAINTAINERS: Add entry for generic-radix-tree
lib/generic-radix-tree.c: Don't overflow in peek()
lib/generic-radix-tree.c: Add peek_prev()
objtool: Add bcachefs noreturns
MAINTAINERS: Add entry for bcachefs
bcachefs: Initial commit
bcachefs: Only check inode i_nlink during full fsck
bcachefs: Convert raw uses of bch2_btree_iter_link() to new transactions
bcachefs: trace transaction restarts
bcachefs: Fix device add
bcachefs: Fix a use after free in the journal code
bcachefs: add bch_verbose() statements for shutdown
bcachefs: Simplify bch2_write_inode_trans, fix lockdep splat
bcachefs: Fix mtime/ctime updates
bcachefs: bch2_trans_update() now takes struct btree_insert_entry
bcachefs: Use ei_update_lock consistently
bcachefs: fix rename + fsync
bcachefs: Fix an assertion
bcachefs: don't call bch2_bucket_seq_cleanup from journal_buf_switch
bcachefs: kill bucket mark sector count saturation
bcachefs: Invalidate buckets when writing to alloc btree
bcachefs: fix nbuckets usage on device resize
bcachefs: fix fsync after create
bcachefs: fix mtime/ctime update on truncate
bcachefs: fix last_seq_ondisk
bcachefs: Assorted journal refactoring
bcachefs: minor fsync fix
bcachefs: fix bch2_val_to_text()
bcachefs: Fix locking in allocator thread
bcachefs: Fix an assertion in the btree node merge path
bcachefs: bch2_mark_key() now takes bch_data_type
bcachefs: kill s_alloc, use bch_data_type
bcachefs: Account for internal fragmentation better
bcachefs: Change how replicated data is accounted
bcachefs: Better calculation of copygc threshold
bcachefs: BCH_SB_RESERVE_BYTES
bcachefs: Factor out btree_key_can_insert()
bcachefs: improved rw_aux_tree_bsearch()
bcachefs: bkey_written()
bcachefs: extent unit tests
bcachefs: lift ordering restriction on 0 size extents
bcachefs: make struct btree_iter a bit smaller
bcachefs: extent_squash() can no longer fail
bcachefs: BTREE_INSERT_JOURNAL_RES_FULL is no longer possible
bcachefs: mempoolify btree_trans
bcachefs: bch2_extent_trim_atomic()
bcachefs: convert bchfs_write_index_update() to bch2_extent_update()
bcachefs: convert truncate to bch2_extent_update()
bcachefs: convert fpunch to bch2_extent_update()
bcachefs: convert fcollapse to bch2_extent_update()
bcachefs: kill i_sectors_hook
bcachefs: kill extent_insert_hook
bcachefs: Pass around bset_tree less
bcachefs: Prioritize fragmentation in bucket allocator
bcachefs: Comparison function cleanups
bcachefs: Fix a btree iter bug when iter pos == POS_MAX
bcachefs: Dirent repair code
bcachefs: make fsck spew less
bcachefs: fix a divide
bcachefs: Fix a deadlock
bcachefs: fix bch2_acl_chmod()
bcachefs: Fix suspend when moving data faster than ratelimit
bcachefs: Fix failure to suspend
bcachefs: Split out alloc_background.c
bcachefs: Allocation code refactoring
bcachefs: fix a spurious gcc warning
bcachefs: fix missing include
bcachefs: extent_ptr_decoded
bcachefs: kill bch_extent_crc_type
bcachefs: extent_for_each_ptr_decode()
bcachefs: bch2_extent_drop_ptrs()
bcachefs: bch2_extent_ptr_decoded_append()
bcachefs: BCH_EXTENT_ENTRY_TYPES()
bcachefs: btree gc refactoring
bcachefs: add functionality for heaps to update backpointers
bcachefs: kill struct bch_replicas_cpu_entry
bcachefs: replicas: prep work for stripes
bcachefs: more key marking refactoring
bcachefs: new avoid mechanism for io retries
bcachefs: fix bch2_bkey_print_bfloat
bcachefs: Some fixes for building in userspace
bcachefs: fix bounds checks in bch2_bio_map()
bcachefs: Fix journal replay when replicas sb section missing
bcachefs: Rename nofsck opt to fsck
bcachefs: Fix an assertion when rebuilding replicas
bcachefs: Scale down number of writepoints when low on space
bcachefs: Assorted fixes for running on very small devices
bcachefs: Disk usage in compressed sectors, not uncompressed
bcachefs: fix a replicas bug
bcachefs: delete some dead code
bcachefs: revamp to_text methods
bcachefs: Check for unsupported features
bcachefs: stripe support for replicas tracking
bcachefs: Move key marking out of extents.c
bcachefs: Centralize marking of replicas in btree update path
bcachefs: More btree gc refactorings
bcachefs: Erasure coding
bcachefs: fix typo when picking read method
bcachefs: Fix an error path
bcachefs: Clean up, possixly fix page disk reservation accounting
bcachefs: start erasure coding after journal replay
bcachefs: Don't block on journal reservation with btree locks held
bcachefs: Journal refactoring
bcachefs: Allocator startup improvements
bcachefs: fix btree iterator bug when using depth > 0
bcachefs: fix mempool double initialization
bcachefs: gc now operates on second set of bucket marks
bcachefs: Allow for new alloc fields
Revert "bcachefs: start erasure coding after journal replay"
bcachefs: shim for userspace raid library
bcachefs: Btree locking fix, refactoring
bcachefs: Stripes now properly subject to gc
bcachefs: Hold usage_lock over mark_key and fs_usage_apply
bcachefs: return errors correctly from gc
bcachefs: fix waiting on an open journal entry
bcachefs: Split out bkey_sort.c
bcachefs: Fix a btree iter usage error
bcachefs: Make bkey types globally unique
bcachefs: Track nr_inodes with the key marking machinery
bcachefs: drop bogus percpu_ref_tryget
bcachefs: Deferred btree updates
bcachefs: Add new alloc fields
bcachefs: move dirty into bucket_mark
bcachefs: New blockcount field for bch_stripe
bcachefs: s/usage_lock/mark_lock
bcachefs: propagate BCH_WRITE_CACHED
bcachefs: Compression fixes
bcachefs: Fix for running in degraded mode
bcachefs: improve/clarify ptr_disk_sectors()
bcachefs: improve extent debugcheck fn
bcachefs: fix an incorrect bkey_debugcheck() call
bcachefs: Switch replicas to mark_lock
bcachefs: refactor bch_fs_usage
bcachefs: Include summarized counts in fs_usage
bcachefs: Fix for building in userspace
bcachefs: use x-macros more consistently
bcachefs: merge BCH_INODE_FIELDS_INHERIT/BCH_INODE_OPTS
bcachefs: bch2_fs_quota_transfer
bcachefs: Add flags to indicate if inode opts were inherited or explicitly set
bcachefs: add bcachefs_effective xattrs
bcachefs: rename keeps inheritable inode opts consistent
bcachefs: bch2_ioc_reinherit_attrs()
bcachefs: Fix duplicate ioctl nr
bcachefs: fix device remove error path
bcachefs: fix ja->cur_idx use while reading journal
bcachefs: fix an rcu usage bug
bcachefs: more project quota fixes
bcachefs: Lots of option handling improvements
bcachefs: fix new reinherit_attrs ioctl
bcachefs: Minor replicas.c refactoring
bcachefs: Factor out acc_u64s()
bcachefs: use crc64 from lib/
bcachefs: correctly initialize bch_extent_ptr
bcachefs: More allocator startup improvements
bcachefs: Fix a dio bug
bcachefs: fixes for getting stuck flushing journal pins
bcachefs: Fix an allocator error path
bcachefs: Add a workqueue for journal reclaim
bcachefs: Fix some reserve calculations
bcachefs: dio arithmetic improvements
bcachefs: fix error message in device remove path
bcachefs: Fix check for if extent update is allocating
bcachefs: Fix fifo overflow in allocator startup
bcachefs: Persist alloc info on clean shutdown
bcachefs: Improve c version of __bkey_cmp_bits
bcachefs: Persist stripe blocks_used
bcachefs: fix inode counting
bcachefs: improve alloc_debug
bcachefs: New journal_entry_res mechanism
bcachefs: sysfs trigger for bch2_alloc_write
bcachefs: percpu utility code
bcachefs: Fix a bug when shutting down before allocator started
bcachefs: fix for unmount hang
bcachefs: delete a debug printk
bcachefs: fix bch2_sb_field_resize()
bcachefs: reserve space in journal for fs usage entries
bcachefs: Write out fs usage
bcachefs: journal_replay_early()
bcachefs: initialize fs usage summary in recovery
bcachefs: serialize persistent_reserved
bcachefs: don't do initial gc if have alloc info feature
bcachefs: Don't need to walk inodes on clean shutdown
bcachefs: no need to run gc when initializing new fs
bcachefs: Fix a lockdep splat
bcachefs: Fix a locking bug
bcachefs: Fix oldest_gen handling
bcachefs: gc lock no longer needed for disk reservations
bcachefs: Fix double counting when gc is running
bcachefs: refactor key marking code a bit
bcachefs: fix more locking bugs
bcachefs: fixes for cached data accounting
bcachefs: Convert bucket invalidation to key marking path
bcachefs: Add a mechanism for blocking the journal
bcachefs: fs_usage_u64s()
bcachefs: Assorted journal refactoring
bcachefs: force str_hash code to be inlined
bcachefs: fix a deadlock on startup
bcachefs: Fix gc handling of bucket gens
bcachefs: fix integer underflow in journal code
bcachefs: Don't get journal reservation until after we know insert will succeed
bcachefs: Better journal debug
bcachefs: Journal reclaim refactoring
bcachefs: use correct wq for journal reclaim
bcachefs: improved flush_held_btree_writes()
bcachefs: Drop a faulty assertion
bcachefs: Allocator startup fixes/refactoring
bcachefs: ja->discard_idx, ja->dirty_idx
bcachefs: Separate discards from rest of journal reclaim
bcachefs: bch2_journal_space_available improvements
bcachefs: Don't block on reclaim_lock from journal_res_get
bcachefs: Add a pre-reserve mechanism for the journal
bcachefs: Use journal preres for deferred btree updates
bcachefs: Use deferred btree updates for inode updates
bcachefs: Remove direct use of bch2_btree_iter_link()
bcachefs: Don't BUG_ON() on bucket sector count overflow
bcachefs: minor journal reclaim fixes
bcachefs: assertion to catch outstanding bug
bcachefs: fix a faulty assertion
bcachefs: increase BTREE_ITER_MAX
bcachefs: Fix for when compressed extent is split during journal replay
bcachefs: Fix for shutting down before fs started marking it clean
bcachefs: Make deferred inode updates a mount option
bcachefs: fix bch2_invalidate_one_bucket2() during journal replay
bcachefs: fix bch2_mark_bkey_replicas() call
bcachefs: Always use bch2_extent_trim_atomic()
bcachefs: Refactor extent insert path
bcachefs: drop btree_insert->did_work
bcachefs: convert bch2_btree_insert_at() usage to bch2_trans_commit()
bcachefs: kill struct btree_insert
bcachefs: Btree update path cleanup
bcachefs: Allocate fs_usage in do_btree_insert_at()
bcachefs: Fix a deadlock
bcachefs: Add more time stats for being blocked on allocator
bcachefs: BTREE_INSERT_ATOMIC must be used for extents now
bcachefs: Add time stats for btree updates
bcachefs: Fix error handling in bch2_fs_recovery()
bcachefs: Run gc if failed to read alloc btree
bcachefs: More debug params for testing of recovery paths
bcachefs: Fix error handling in gc
bcachefs: Rework error handling in btree update path
bcachefs: Fix a deadlock
bcachefs: Go rw lazily
bcachefs: Verify fs hasn't been modified before going rw
bcachefs: Btree iter improvements
bcachefs: Only get btree iters from btree transactions
bcachefs: Btree iterators now always have a btree_trans
bcachefs: Better bch2_trans_copy_iter()
bcachefs: trans_for_each_iter()
bcachefs: Change btree_iter_traverse_error() to not use iter->next
bcachefs: Kill btree_iter->next
bcachefs: Add iter->idx
bcachefs: traverse all iterators on transaction restart
bcachefs: Unlink not-touched iters on successful transaction commit
bcachefs: Sort updates in bch2_trans_update()
bcachefs: move some checks to expensive_debug_checks
bcachefs: simplify gc locking a bit
bcachefs: Handle fsck errors at runtime better
bcachefs: fix initial gc
bcachefs: Write out alloc info more carefully
bcachefs: Assorted preemption fixes
bcachefs: (invalidate|release)_folio fixes
bcachefs: Track whether filesystem has errors in superblock
bcachefs: make sure to use BTREE_INSERT_LAZY_RW in fsck
bcachefs: allow journal reply on ro mount
bcachefs: add missing bch2_btree_iter_node_drop() call
bcachefs: fix bch2_trans_unlock()
bcachefs: Refactor bch2_fs_recovery()
bcachefs: Caller now responsible for calling mark_key for gc
bcachefs: Fsck locking improvements
bcachefs: minor fsck fix
bcachefs: ratelimit copygc warning
bcachefs: Convert gc errors to fsck errors
bcachefs: add ability to run gc on metadata only
bcachefs: free trans->mem on commit
bcachefs: don't lose errors from iterators that have been freed
bcachefs: Rewrite journal_seq_blacklist machinery
bcachefs: initial gc no longer needs to touch every node
bcachefs: disallow ever going rw if nochanges or noreplay
bcachefs: delete duplicated code
bcachefs: allocate sb_read_scratch with __get_free_page
bcachefs: Pass flags arg to bch2_alloc_write()
bcachefs: cmp_int()
bcachefs: Journal replay refactoring
bcachefs: Deduplicate keys in the journal before replay
bcachefs: Mark overwrites from journal replay in initial gc
bcachefs: lockdep fix when going rw from bch2_alloc_write()
bcachefs: Fix hang while shutting down
bcachefs: use same timesource as current_time()
bcachefs: fix triggers for stripes btree
bcachefs: Return errors from for_each_btree_key()
bcachefs: copy correct journal_seq to dir in create
bcachefs: Add actual tracepoints for transaction restarts
bcachefs: fix bch2_flags_to_text()
bcachefs: Don't hardcode BTREE_ID_EXTENTS
bcachefs: bch2_bkey_ptrs_invalid()
bcachefs: Fix fsync error reporting
bcachefs: Fix journal shutdown path
bcachefs: fix bch2_rbio_narrow_crcs()
bcachefs: Fix a bug with multiple iterators being traversed
bcachefs: Avoid write lock on mark_lock
bcachefs: Write out fs usage consistently
bcachefs: btree_bkey_cached_common
bcachefs: bch2_trans_mark_update()
bcachefs: Various improvements to bch2_alloc_write()
bcachefs: some improvements to startup messages and options
bcachefs: Don't run fsck by default at mount time
bcachefs: Fix return code from bch2_fs_start()
bcachefs: Redo replicas gc mechanism
bcachefs: Fix for the stripes mark path and gc
bcachefs: Kill remaining bch2_btree_iter_unlock() uses
bcachefs: Don't pass around may_drop_locks
bcachefs: kill BTREE_ITER_NOUNLOCK
bcachefs: Merge extents with checksums
bcachefs: stripe creation fixes
bcachefs: bch2_btree_delete_at_range()
bcachefs: improved btree locking tracepoints
bcachefs: Fix spurious inconsistency in recovery
bcachefs: Delete duplicate code
bcachefs: Fix a bug with spinning on the journal
bcachefs: Ensure bch2_btree_iter_next() always advances
bcachefs: Avoid spurious transaction restarts
bcachefs: More work to avoid transaction restarts
bcachefs: Rip out old hacky transaction restart tracing
bcachefs: Don't use a fixed size buffer for fs_usage_deltas
bcachefs: fix bch2_extent_merge()
bcachefs: fix a mount error path
bcachefs: better BTREE_INSERT_NO_CLEAR_REPLICAS
bcachefs: Fix cached sectors not being updated on invalidate
bcachefs: Improve key marking interface
bcachefs: Fix an error path in bch2_btree_iter_traverse()
bcachefs: Fix starting copygc when already started
bcachefs: Don't overflow stack in bch2_extent_merge_inline()
bcachefs: bkey_merge() now takes bkey_s
bcachefs: Reduce BKEY_PADDED usage
bcachefs: Don't allow bkey vals that are too big in extents btree
bcachefs: Fix promoting to cache devices (durability = 0)
bcachefs: use memalloc_nofs_save() for vmalloc allocation
bcachefs: fix __bch2_xattr_bcachefs_get()
bcachefs: Delete a spurious assertion
bcachefs: fix kasan splat
bcachefs: Fix array overrun with unknown btree roots
bcachefs: add inode_generation_to_text method
bcachefs: Update path now handles triggers that generate more triggers
bcachefs: Refactor trans_(get|update)_key
bcachefs: Check for key size > offset
bcachefs: Improve bch2_lock_inodes()
bcachefs: Fix for building with old gcc
bcachefs: kill bch2_crc64_update
bcachefs: Kill direct access to bi_io_vec
bcachefs: kill bio_for_each_contig_segment()
bcachefs: Fix moving compressed data
bcachefs: Always touch page state with page locked
bcachefs: Kill page_state_cmpxchg
bcachefs: Track dirtyness at sector level, not page
bcachefs: Don't try to delete stripes when RO
bcachefs: Fix stripe_idx_to_delete()
bcachefs: Fix ec_stripes_read()
bcachefs: Convert some assertions to fsck errors
bcachefs: Don't overflow trans with iters from triggers
bcachefs: Print out name of bkey type
bcachefs: Add offset_into_extent param to bch2_read_extent()
bcachefs: add missing bch2_trans_begin() call
bcachefs: Don't unlink iters on unsuccessful commit
bcachefs: Dont't call bch2_trans_begin_updates() in bch2_extent_update()
bcachefs: Refactor __bch2_cut_front()
bcachefs: Refactor various code to not be extent specific
bcachefs: Fix bch2_seek_data()
bcachefs: Change __bch2_writepage() to not write to holes
bcachefs: Change buffered write path to write to partial pages
bcachefs: Handle partial pages in seek data/hole
bcachefs: Count reserved extents as holes
bcachefs: Truncate/fpunch now works on block boundaries, not page
bcachefs: Export correct blocksize to vfs
bcachefs: trans_get_key() now works correctly for extents
bcachefs: fix for_each_btree_key()
bcachefs: Ensure bch2_trans_get_iter() returns iters with correct locks
bcachefs: Mark space as unallocated on write failure
bcachefs: Rework calling convention for marking overwrites
bcachefs: Improved debug checks
bcachefs: Fix __bch2_btree_iter_peek_slot_extents()
bcachefs: Fix bch2_btree_node_iter_prev_filter()
bcachefs: Fix bch2_btree_node_iter_fix()
bcachefs: Move node iterator fixup to extent_bset_insert()
bcachefs: Refactor bch2_extent_trim_atomic() for reflink
bcachefs: Reflink
bcachefs: Fix bch2_sort_repack_merge()
bcachefs: Fix bch2_bkey_narrow_crcs()
bcachefs: Fix faulty assertion
bcachefs: Check alignment in write path
bcachefs: Re-enable bkey_debugcheck() in the extent update path
bcachefs: Update more code for KEY_TYPE_reflink_v
bcachefs: Handle ec_buf not being page aligned when allocating bio
bcachefs: Fix a spurious gcc warning
bcachefs: Don't flush journal from bch2_vfs_write_inode()
bcachefs: Inline some fast paths
bcachefs: Add a hint for allocating new stripes
bcachefs: Optimize fiemap
bcachefs: Trust in memory bucket mark
bcachefs: Refactor bch2_alloc_write()
bcachefs: Fixes for replicas tracking
bcachefs: Reflink pointers also have to be remarked if split in journal replay
bcachefs: Fix error message on bucket overflow
bcachefs: Fix fiemap (again)
bcachefs: Switch reconstruct_alloc to a mount option
bcachefs: Improve pointer marking checks and error messages
bcachefs: Fix BTREE_INSERT_NOMARK_OVERWRITES
bcachefs: Kill BTREE_INSERT_NOMARK_INSERT
bcachefs: Rebalance now adds replicas if needed
bcachefs: Flush fsck errors when looping in btree gc
bcachefs: Fix a null ptr deref
bcachefs: data move path should not be trying to move reflink_p keys
bcachefs: Drop trans arg to bch2_extent_atomic_end()
bcachefs: Do updates in order they were queued up in
bcachefs: __bch2_btree_node_iter_fix() improvements
bcachefs: Improved bch2_fcollapse()
bcachefs: Fix a typo
bcachefs: Optimize calls to bch2_btree_iter_traverse()
bcachefs: Add missing bch2_btree_node_iter_fix() calls
bcachefs: Debug code improvements
bcachefs: Improve btree_iter_pos_in_node()
bcachefs: More btree iter improvements
bcachefs: Avoid deadlocking on the allocator
bcachefs: Add missing bch2_btree_node_iter_fix() call
bcachefs: Debug assertion improvements
bcachefs: Check for extents past eof correctly
bcachefs: Don't write past eof
bcachefs: bch2_btree_iter_peek_prev()
bcachefs: Add support for FALLOC_FL_INSERT_RANGE
bcachefs: Fix validation of replicas entries
bcachefs: Drop unused arg to bch2_open_buckets_stop_dev()
bcachefs: Handle bio_iov_iter_get_pages() returning unaligned bio
bcachefs: Update path microoptimizations
bcachefs: Drop unnecessary rcu_read_lock()
bcachefs: Count iterators for reflink_p overwrites correctly
bcachefs: Convert a BUG_ON() to a warning
bcachefs: Trivial cleanup
bcachefs: Cleanup i_nlink handling
bcachefs: Improve error handling for for_each_btree_key_continue()
bcachefs: BTREE_ITER_SLOTS isn't a type of btree iter
bcachefs: Fix for partial buffered writes
bcachefs: Kill deferred btree updates
bcachefs: Rework btree iterator lifetimes
bcachefs: Fix counting iterators for reflink pointers
bcachefs: Trust inode in btree over bch_inode_info
bcachefs: Fix __bch2_buffered_write() returning -ENOMEM
bcachefs: Fix an error path
bcachefs: Fix undefined behaviour
bcachefs: bch2_inode_peek()/bch2_inode_write()
bcachefs: Fix deref of error pointer
bcachefs: Only look up inode io opts in extents btree
bcachefs: Don't use sha256 for siphash str hash key
bcachefs: Factor out fs-common.c
bcachefs: bch2_extent_atomic_end() now traverses iter
bcachefs: Don't allocate memory under mark_lock
bcachefs: Can't be holding read locks while taking write locks
bcachefs: Fix incorrect use of bch2_extent_atomic_end()
bcachefs: Fix bch2_mark_extent()
bcachefs: Fix bch2_extent_ptr_durability()
bcachefs: Limit pointers to being in only one stripe
bcachefs: Fix ec_stripes_read()
bcachefs: Fix erasure coding disk space accounting
bcachefs: Add a lock to bch_page_state
bcachefs: Refactor bch2_readdir() a bit
bcachefs: Fix bch2_btree_iter_next() after peek_slot()
bcachefs: Check if extending inode differently
bcachefs: Kill some dependencies on ei_inode
bcachefs: Split out bchfs_extent_update()
bcachefs: Convert bch2_fpunch to bch2_extent_update()
bcachefs: Kill bchfs_extent_update()
bcachefs: Fix a subtle race in the btree split path
bcachefs: Fix creation of lost+found
bcachefs: Switch to .iterate_shared for readdir
bcachefs: Fix a debug assertion
bcachefs: Fix iterator counting for reflink pointers (again)
bcachefs: Fix flushing held btree writes when there's a fs error
bcachefs: Fix an iterator counting bug
bcachefs: Limit bios in writepages path to 256M
bcachefs: Drop bch_write_op->io_wq
bcachefs: Don't submit bio in write path under lock
bcachefs: Make replicas_delta_list smaller
bcachefs: Make btree_node_type_needs_gc() cheaper
bcachefs: Refactor bch2_trans_commit() path
bcachefs: Don't use FUA unnecessarily
bcachefs: kill bch2_extent_merge_inline()
bcachefs: Avoid calling iter_prev() in extent update path
bcachefs: Don't use rep movsq for small memcopies
bcachefs: Don't reuse bio in retry path
bcachefs: Fix an error path race
bcachefs: Add missing error checking in bch2_find_by_inum_trans()
bcachefs: More bset.c microoptimization
bcachefs: Trust btree alloc info at runtime
bcachefs: Inline more of bch2_trans_commit hot path
bcachefs: bch2_btree_iter_fix_key_modified()
bcachefs: Don't use extent_ptr_decoded_append() in write path (fixup patch)
bcachefs: Avoid atomics in write fast path
bcachefs: Don't hold inode lock longer than necessary in dio write path
bcachefs: Add pagecache_add lock to buffered IO path, fault path
bcachefs: DIO write path only needs to shoot down pagecache once, not twice
bcachefs: Eliminate function calls in DIO fastpaths
bcachefs: Fix setting of attributes mask in getattr
bcachefs: Some reflink fixes
bcachefs: Don't BUG_ON() sector count overflow
bcachefs: Add an option for fsck error ratelimiting
bcachefs: Avoid calling bch2_btree_iter_relock() in bch2_btree_iter_traverse()
bcachefs: Inline fast path of bch2_increment_clock()
bcachefs: Make __bch2_bkey_cmp_packed() smaller
bcachefs: Pipeline binary searches and linear searches
bcachefs: bch2_read_extent() microoptimizations
bcachefs: kill BFLOAT_FAILED_PREV
bcachefs: Fall back to slowpath on exact comparison
bcachefs: Go back to 16 bit mantissa bkey floats
bcachefs: Remove some BKEY_PADDED uses
bcachefs: Be slightly less tricky with union usage
bcachefs: Fix erorr path in bch2_write()
bcachefs: Use wbc_to_write_flags()
bcachefs: Make memcpy_to_bio() param const
bcachefs: bkey_on_stack
bcachefs: kill bch2_extent_has_device()
bcachefs: bkey noops
bcachefs: Rework of cut_front & cut_back
bcachefs: Split out extent_update.c
bcachefs: Inline data extents
bcachefs: Reorganize extents.c
bcachefs: kill ca->freelist_lock
bcachefs: bkey_on_stack_reassemble()
bcachefs: Switch to macro for bkey_ops
bcachefs: bch2_check_set_feature()
bcachefs: Put inline data behind a mount option for now
bcachefs: Fix bch2_verify_insert_pos()
bcachefs: Always emit new extents on partial overwrite
bcachefs: Whiteout changes
bcachefs: Refactor whiteouts compaction
bcachefs: Use one buffer for sorting whiteouts
bcachefs: Kill btree_node_iter_large
bcachefs: Fix a null ptr deref in btree_iter_traverse_one()
bcachefs: Fix for an assertion on filesystem error
bcachefs: Redo filesystem usage ioctls
bcachefs: Fix a memory splat
bcachefs: Make io timers less buggy
bcachefs: Redo copygc throttling
bcachefs: Drop a faulty assertion
bcachefs: bch2_trans_reset() calls should be at the tops of loops
bcachefs: Convert all bch2_trans_commit() users to BTREE_INSERT_ATOMIC
bcachefs: Kill BTREE_INSERT_ATOMIC
bcachefs: Don't reexecute triggers when retrying transaction commit
bcachefs: Don't export __bch2_fs_read_write
bcachefs: Fix a use after free
bcachefs: Add an assertion to track down a heisenbug
bcachefs: Convert some enums to x-macros
bcachefs: Use KEY_TYPE_deleted whitouts for extents
bcachefs: Use bch2_trans_reset in bch2_trans_commit()
bcachefs: Make btree_insert_entry more private to update path
bcachefs: Split out btree_trigger_flags
bcachefs: Sort & deduplicate updates in bch2_trans_update()
bcachefs: Make sure bch2_read_extent obeys BCH_READ_MUST_CLONE
bcachefs: Fix an iterator error path
bcachefs: Don't print anything when device doesn't have a label
bcachefs: Hacky fixes for device removal
bcachefs: Kill bch2_fs_bug()
bcachefs: Fix extent_to_replicas()
bcachefs: Ensure iterators are valid before calling trans_mark_key()
bcachefs: Don't call trans_iter_put() on error pointer
bcachefs: Don't lose needs_whiteout in overwrite path
bcachefs: Rework iter->pos handling
bcachefs: Refactor bch2_btree_bset_insert_key()
bcachefs: Add some comments for btree iterator flags
bcachefs: Change btree split threshold to be in u64s
bcachefs: Fix bch2_sort_keys() to not modify src keys
bcachefs: Don't modify existing key in place in sort_repack_merge()
bcachefs: Add a cond_resched() to rebalance loop
bcachefs: Improve tracepoints slightly in commit path
bcachefs: Refactor rebalance_pred function
bcachefs: Track incompressible data
bcachefs: Fix an in iterator leak
bcachefs: Fix an uninitialized field in bch_write_op
bcachefs: Improve an insert path optimization
bcachefs: Make sure we're releasing btree iterators
bcachefs: btree_and_journal_iter
bcachefs: __bch2_btree_iter_set_pos()
bcachefs: Make BTREE_ITER_IS_EXTENTS private to iter code
bcachefs: Fix bch2_ptr_swab for indirect extents
bcachefs: Check for bad key version number
bcachefs: Fix traversing to interior nodes
bcachefs: introduce b->hash_val
bcachefs: btree_ptr_v2
bcachefs: Seralize btree_update operations at btree_update_nodes_written()
bcachefs: Kill TRANS_RESET_MEM|TRANS_RESET_ITERS
bcachefs: Issue discards when needed to allocate journal write
bcachefs: Fix incorrect initialization of btree_node_old_extent_overwrite()
bcachefs: Use btree_ptr_v2.mem_ptr to avoid hash table lookup
bcachefs: fix setting btree_node_accessed()
bcachefs: BCH_SB_FEATURES_ALL
bcachefs: Improve an error message
bcachefs: Fix error message on bucket sector count overflow
bcachefs: Dont't del sysfs dir until after we go RO
bcachefs: Journal pin cleanups
bcachefs: Some btree iterator improvements
bcachefs: Fix extent_sort_fix_overlapping()
bcachefs: Fix off by one error in bch2_extent_crc_append()
bcachefs: Fix another iterator leak
bcachefs: Fix bch2_dump_bset()
bcachefs: Don't log errors that are expected during shutdown
bcachefs: Traverse iterator in journal replay
bcachefs: Skip 0 size deleted extents in journal replay
bcachefs: Iterator debug code improvements
bcachefs: Simplify bch2_btree_iter_peek_slot()
bcachefs: More btree iter invariants
bcachefs: Fix build when CONFIG_BCACHEFS_DEBUG=n
bcachefs: btree_iter_peek_with_updates()
bcachefs: Move extent overwrite handling out of core btree code
bcachefs: Drop unused export
bcachefs: Fix a use after free in dio write path
bcachefs: Don't use peek_filter() unnecessarily
bcachefs: Fix another iterator leak
bcachefs: Clear BCH_FEATURE_extents_above_btree_updates on clean shutdown
bcachefs: BCH_FEATURE_new_extent_overwrite is now required
bcachefs: Shut down quicker
bcachefs: Fix an iterator bug
bcachefs: Fix count_iters_for_insert()
bcachefs: Fix a locking bug in fsck
bcachefs: Disable extent merging
bcachefs: trans_commit() path can now insert to interior nodes
bcachefs: Replay interior node keys
bcachefs: Journal updates to interior nodes
bcachefs: Fix an assertion when nothing to replay
bcachefs: Add an option for keeping journal entries after startup
bcachefs: Improve error message in fsck
bcachefs: Use memalloc_nofs_save()
bcachefs: Various fixes for interior update path
bcachefs: Read journal when keep_journal on
bcachefs: Use kvpmalloc mempools for compression bounce
bcachefs: Switch a BUG_ON() to a warning
bcachefs: Kill bkey_type_successor
bcachefs: Reduce max nr of btree iters when lockdep is on
bcachefs: Don't allocate memory while holding journal reservation
bcachefs: Check btree topology at startup
bcachefs: Fix ec_stripe_update_ptrs()
bcachefs: Fix inodes pass in fsck
bcachefs: Fix a locking bug
bcachefs: Fix iterating of journal keys within a btree node
bcachefs: Fix journalling of interior node updates
bcachefs: Add print method for bch2_btree_ptr_v2
bcachefs: Fix fallocate FL_INSERT_RANGE
bcachefs: Trace where btree iterators are allocated
bcachefs: Add another mssing bch2_trans_iter_put() call
bcachefs: Fix a null ptr deref during journal replay
bcachefs: Fix another error path locking bug
bcachefs: Fix a debug assertion
bcachefs: Fix a debug mode assertion
bcachefs: Fix a deadlock on starting an interior btree update
bcachefs: Account for ioclock slop when throttling rebalance thread
bcachefs: Fix a locking bug in bch2_btree_ptr_debugcheck()
bcachefs: Fix another deadlock in the btree interior update path
bcachefs: Fix a locking bug in bch2_journal_pin_copy()
bcachefs: Improve lockdep annotation in journalling code
bcachefs: Slightly reduce btree split threshold
bcachefs: Add a few tracepoints
bcachefs: Fix for the bkey compat path
bcachefs: Handle -EINTR bch2_migrate_index_update()
bcachefs: Fix a deadlock
bcachefs: More fixes for counting extent update iterators
bcachefs: Don't issue writes that are more than 1 MB
bcachefs: Add some printks for error paths
bcachefs: Fix another deadlock in btree_update_nodes_written()
bcachefs: Fix two more deadlocks
bcachefs: Some compression improvements
bcachefs: Fix initialization of bounce mempools
bcachefs: Fixes for startup on very full filesystems
bcachefs: Validate that we read the correct btree node
bcachefs: Fix a workqueue deadlock
bcachefs: Fix setquota
bcachefs: Fix another iterator counting bug
bcachefs: Wrap vmap() in memalloc_nofs_save()/restore()
bcachefs: Print out d_type in dirent_to_text()
bcachefs: Add vmalloc fallback for decompress workspace
bcachefs: Handle printing of null bkeys
bcachefs: Be more rigorous about marking the filesystem clean
bcachefs: Better error messages on bucket sector count overflows
bcachefs: fix memalloc_nofs_restore() usage
bcachefs: Fix reading of alloc info after unclean shutdown
bcachefs: Add a mechanism for passing extra journal entries to bch2_trans_commit()
bcachefs: Factor out bch2_fs_btree_interior_update_init()
bcachefs: Interior btree updates are now fully transactional
bcachefs: fsck_error_lock requires GFP_NOFS
bcachefs: Don't require alloc btree to be updated before buckets are used
bcachefs: Fixes for going RO
bcachefs: Add an option to disable reflink support
bcachefs: Set filesystem features earlier in fs init path
bcachefs: Add debug code to print btree transactions
bcachefs: Fix a deadlock in bch2_btree_node_get_sibling()
bcachefs: Improve assorted error messages
bcachefs: Kill old allocator startup code
bcachefs: Always increment bucket gen on bucket reuse
bcachefs: Improve warning for copygc failing to move data
bcachefs: bch2_trans_downgrade()
bcachefs: Call bch2_btree_iter_traverse() if necessary in commit path
bcachefs: Check gfp_flags correctly in bch2_btree_cache_scan()
bcachefs: btree_update_nodes_written() requires alloc reserve
bcachefs: Make open bucket reserves more conservative
bcachefs: Fix a linked list bug
bcachefs: Don't allocate memory under the btree cache lock
bcachefs: More open buckets
bcachefs: Always give out journal pre-res if we already have one
bcachefs: Refactor btree insert path
bcachefs: Fix a deadlock
bcachefs: Don't deadlock when btree node reuse changes lock ordering
bcachefs: Add an internal option for reading entire journal
bcachefs: Turn c->state_lock into an rwsem
bcachefs: Implement a new gc that only recalcs oldest gen
bcachefs: Btree key cache
bcachefs: Use cached iterators for alloc btree
bcachefs: Give bkey_cached_key same attributes as bpos
bcachefs: Increase size of btree node reserve
bcachefs: delete a slightly faulty assertion
bcachefs: Fix lock ordering with new btree cache code
bcachefs: Fix incorrect gfp check
bcachefs: Fix a deadlock in the RO path
bcachefs: Change bch2_dump_bset() to also print key values
bcachefs: Add a kthread_should_stop() check to allocator thread
bcachefs: Use btree reserve when appropriate
bcachefs: Track sectors of erasure coded data
bcachefs: Fix a null ptr deref in bch2_btree_iter_traverse_one()
bcachefs: Fix bch2_extent_can_insert() not being called
bcachefs: Refactor dio write code to reinit bch_write_op
bcachefs: Don't cap ios in dio write path at 2 MB
bcachefs: Use blk_status_to_str()
bcachefs: Mark btree nodes as needing rewrite when not all replicas are RW
bcachefs: Kill BTREE_TRIGGER_NOOVERWRITES
bcachefs: Rework triggers interface
bcachefs: Improve stripe triggers/heap code
bcachefs: Move stripe creation to workqueue
bcachefs: Refactor stripe creation
bcachefs: Allow existing stripes to be updated with new data buckets
bcachefs: Fix short buffered writes
bcachefs: Use x-macros for data types
bcachefs: Fix extent_ptr_durability() calculation for erasure coded data
bcachefs: Drop extra pointers when marking data as in a stripe
bcachefs: Make copygc thread global
bcachefs: Add an option for rebuilding the replicas section
bcachefs: Wrap write path in memalloc_nofs_save()
bcachefs: Fix a faulty assertion
bcachefs: Add bch2_blk_status_to_str()
bcachefs: Don't restrict copygc writes to the same device
bcachefs: Refactor replicas code
bcachefs: Fix an error path
bcachefs: Delete unused arguments
bcachefs: Don't let copygc buckets be stolen by other threads
bcachefs: Fix a race with BCH_WRITE_SKIP_CLOSURE_PUT
bcachefs: Ensure we only allocate one EC bucket per writepoint
bcachefs: Fix bch2_btree_node_insert_fits()
bcachefs: Ensure we wake up threads locking node when reusing it
bcachefs: Remove some uses of PAGE_SIZE in the btree code
bcachefs: Convert various code to printbuf
bcachefs: Fix maximum btree node size
bcachefs: Don't disallow btree writes to RO devices
bcachefs: Fix bch2_new_stripes_to_text()
bcachefs: Fix a bug with the journal_seq_blacklist mechanism
bcachefs: Don't block on allocations when only writing to specific device
bcachefs: Change copygc to consider bucket fragmentation
bcachefs: Fix disk groups not being updated when set via sysfs
bcachefs: Fix a couple null ptr derefs when no disk groups exist
bcachefs: Add a cond_resched() to bch2_alloc_write()
bcachefs: Don't report inodes to statfs
bcachefs: Some project id fixes
bcachefs: Make sure to go rw if lazy in fsck
bcachefs: Improvements to the journal read error paths
bcachefs: Don't fail mount if device has been removed
bcachefs: Fix unmount path
bcachefs: Fix journal_seq_copy()
bcachefs: Fix __bch2_truncate_page()
bcachefs: Fix a lockdep splat
bcachefs: Fix off-by-one error in ptr gen check
bcachefs: Fix gc of stale ptr gens
bcachefs: Copy ptr->cached when migrating data
bcachefs: Fix errors early in the fs init process
bcachefs: Fix another lockdep splat
bcachefs: Fix copygc of compressed data
bcachefs: Fix copygc dying on startup
bcachefs: Perf improvements for bch_alloc_read()
bcachefs: Fix assertion popping in transaction commit path
bcachefs: Improvements to writing alloc info
bcachefs: Start/stop io clock hands in read/write paths
bcachefs: Fix for bad stripe pointers
bcachefs: Account for stripe parity sectors separately
bcachefs: Don't drop replicas when copygcing ec data
bcachefs: Fix bch2_mark_stripe()
bcachefs: Fix for passing target= opts as mount opts
bcachefs: Improve some error messages
bcachefs: Fix rare use after free in read path
bcachefs: Indirect inline data extents
bcachefs: Drop alloc keys from journal when -o reconstruct_alloc
bcachefs: Always write a journal entry when stopping journal
bcachefs: Add mode to bch2_inode_to_text
bcachefs: Fix btree updates when mixing cached and non cached iterators
bcachefs: fiemap fixes
bcachefs: Use cached iterators for inode updates
bcachefs: Fix stack corruption
bcachefs: Improve tracing for transaction restarts
bcachefs: Fix spurious transaction restarts
bcachefs: Improve check for when bios are physically contiguous
bcachefs: Inode create optimization
bcachefs: Minor journal reclaim improvement
bcachefs: Drop sysfs interface to debug parameters
bcachefs: Split out debug_check_btree_accounting
bcachefs: Don't embed btree iters in btree_trans
bcachefs: add const annotations to bset.c
bcachefs: Report inode counts via statfs
bcachefs: Improved inode create optimization
bcachefs: Build fixes for 32bit x86
bcachefs: Add a single slot percpu buf for btree iters
bcachefs: Fix spurious transaction restarts
bcachefs: More inlinining in the btree key cache code
bcachefs: Drop typechecking from bkey_cmp_packed()
bcachefs: Fix build warning when CONFIG_BCACHEFS_DEBUG=n
bcachefs: New varints
bcachefs: use a radix tree for inum bitmap in fsck
bcachefs: Inline make_bfloat() into __build_ro_aux_tree()
bcachefs: Fix btree iterator leak
bcachefs: Add accounting for dirty btree nodes/keys
bcachefs: Fix btree key cache shutdown
bcachefs: Fix missing memalloc_nofs_restore()
bcachefs: Hack around bch2_varint_decode invalid reads
bcachefs: Deadlock prevention for ei_pagecache_lock
bcachefs: Improve journal entry validate code
bcachefs: Fix a 64 bit divide
bcachefs: Fix a btree transaction iter overflow
bcachefs: Inode delete doesn't need to flush key cache anymore
bcachefs: Be more careful in bch2_bkey_to_text()
bcachefs: Improve journal error messages
bcachefs: Delete dead journalling code
bcachefs: Assorted journal refactoring
bcachefs: Check for errors from register_shrinker()
bcachefs: Take a SRCU lock in btree transactions
bcachefs: Add a shrinker for the btree key cache
bcachefs: Fix journal entry repair code
bcachefs: Convert tracepoints to use %ps, not %pf
bcachefs: Set preallocated transaction mem to avoid restarts
bcachefs: Dont' use percpu btree_iter buf in userspace
bcachefs: Dump journal state when the journal deadlocks
bcachefs: Add more debug checks
bcachefs: Add an ioctl for resizing journal on a device
bcachefs: Add btree cache stats to sysfs
bcachefs: Be more precise with journal error reporting
bcachefs: Add a kmem_cache for btree_key_cache objects
bcachefs: More debug code improvements
bcachefs: Improve btree key cache shrinker
bcachefs: Ensure journal reclaim runs when btree key cache is too dirty
bcachefs: Simplify transaction commit error path
bcachefs: Journal reclaim requires memalloc_noreclaim_save()
bcachefs: Throttle updates when btree key cache is too dirty
bcachefs: Move journal reclaim to a kthread
bcachefs: Fix an rcu splat
bcachefs: Don't use bkey cache for inode update in fsck
bcachefs: bch2_btree_delete_range_trans()
bcachefs: Delete dead code
bcachefs: Optimize bch2_journal_flush_seq_async()
bcachefs: Fix for __readahead_batch getting partial batch
bcachefs: Fix journal reclaim spinning in recovery
bcachefs: Fix error in filesystem initialization
bcachefs: Change a BUG_ON() to a fatal error
bcachefs: Ensure we always have a journal pin in interior update path
bcachefs: Use BTREE_ITER_PREFETCH in journal+btree iter
bcachefs: Fix for fsck spuriously finding duplicate extents
bcachefs: Journal pin refactoring
bcachefs: Add error handling to unit & perf tests
bcachefs: bch2_trans_get_iter() no longer returns errors
bcachefs: Fix journal_flush_seq()
bcachefs: Fix some spurious gcc warnings
bcachefs: Fix spurious alloc errors on forced shutdown
bcachefs: Refactor filesystem usage accounting
bcachefs: Improve some IO error messages
bcachefs: Flag inodes that had btree update errors
bcachefs: Check for errors in bch2_journal_reclaim()
bcachefs: Don't issue btree writes that weren't journalled
bcachefs: Increase journal pipelining
bcachefs: Improve journal free space calculations
bcachefs: Don't require flush/fua on every journal write
bcachefs: Be more conservation about journal pre-reservations
bcachefs: Fix btree key cache dirty checks
bcachefs: Prevent journal reclaim from spinning
bcachefs: Try to print full btree error message
bcachefs: Fix rand_delete() test
bcachefs: Fix __btree_iter_next() when all iters are in use_next() when all iters are in use
bcachefs: Only try to get existing stripe once in stripe create path
bcachefs: Update transactional triggers interface to pass old & new keys
bcachefs: Always check if we need disk res in extent update path
bcachefs: Fix btree node merge -> split operations
bcachefs: Add some cond_rescheds() in shutdown path
bcachefs: Check for duplicate device ptrs in bch2_bkey_ptrs_invalid()
bcachefs: Add BCH_BKEY_PTRS_MAX
bcachefs: Don't write bucket IO time lazily
bcachefs: Fix race between journal_seq_copy() and journal_seq_drop()
bcachefs: Fix for spinning in journal reclaim on startup
bcachefs: Fix btree lock being incorrectly dropped
bcachefs: Fix iterator overflow in move path
bcachefs: Don't use BTREE_INSERT_USE_RESERVE so much
bcachefs: Change when we allow overwrites
bcachefs: Don't read existing stripes synchronously in write path
bcachefs: Change allocations for ec stripes to blocking
bcachefs: Use separate new stripes for copygc and non-copygc
bcachefs: Reduce/kill BKEY_PADDED use
bcachefs: Fix journal_buf_realloc()
bcachefs: Don't error out of recovery process on journal read error
bcachefs: Work around a zstd bug
bcachefs: Reserve some open buckets for btree allocations
bcachefs: Fix btree node split after merge operations
bcachefs: bch2_alloc_write() should be writing for all devices
bcachefs: Fix bch2_replicas_gc2
bcachefs: Fix .splice_write
bcachefs: Add cannibalize lock to btree_cache_to_text()
bcachefs: Erasure coding fixes & refactoring
bcachefs: Add btree node prefetching to bch2_btree_and_journal_walk()
bcachefs: Factor out bch2_ec_stripes_heap_start()
bcachefs: Run jset_validate in write path as well
bcachefs: Correctly order flushes and journal writes on multi device filesystems
bcachefs: Fix integer overflow in bch2_disk_reservation_get()
bcachefs: Fix double counting of stripe block counts by GC
bcachefs: Fix gc updating stripes info
bcachefs: Kill stripe->dirty
bcachefs: Preserve stripe blockcounts on existing stripes
bcachefs: Verify transaction updates are sorted
bcachefs: Rework allocating buckets for stripes
bcachefs: Don't allocate stripes at POS_MIN
bcachefs: Fix an assertion pop
bcachefs: Clean up bch2_extent_can_insert
bcachefs: Fix loopback in dio mode
bcachefs: Switch replicas.c allocations to GFP_KERNEL
bcachefs: Fix a faulty assertion
bcachefs: Ensure __bch2_trans_commit() always calls bch2_trans_reset()
bcachefs: Kill metadata only gc
bcachefs: Refactor dev usage
bcachefs: Kill bch2_invalidate_bucket()
bcachefs: Mark superblocks transactionally
bcachefs: Fix an assertion
bcachefs: Fix build in userspace
bcachefs: Fix BCH_REPLICAS_MAX check
bcachefs: Improve diagnostics when journal entries are missing
bcachefs: Refactor checking of btree topology
bcachefs: Add BTREE_PTR_RANGE_UPDATED
bcachefs: Add support for doing btree updates prior to journal replay
bcachefs: Add (partial) support for fixing btree topology
bcachefs: Repair bad data pointers
bcachefs: Add an option for metadata_target
bcachefs: Add an assertion to check for journal writes to same location
bcachefs: Add missing call to bch2_replicas_entry_sort()
bcachefs: KEY_TYPE_alloc_v2
bcachefs: Persist 64 bit io clocks
bcachefs: Journal updates to dev usage
bcachefs: Include device in btree IO error messages
bcachefs: Fixes/improvements for journal entry reservations
bcachefs: Run fsck if BCH_FEATURE_alloc_v2 isn't set
bcachefs: Redo checks for sufficient devices
bcachefs: Add flushed_seq_ondisk to journal_debug_to_text()
bcachefs: Fix for hash_redo_key() in fsck
bcachefs: Simplify btree_iter_(next|prev)_leaf()
bcachefs: Kill bch2_btree_iter_set_pos_same_leaf()
bcachefs: bch2_btree_iter_advance_pos()
bcachefs: Fix bch2_btree_iter_peek_prev()
bcachefs: Assert that we're not trying to flush journal seq in the future
bcachefs: Fix a shift greater than type size
bcachefs: Fsck fixes
bcachefs: Drop invalid stripe ptrs in fsck
bcachefs: Ensure btree iterators are traversed in bch2_trans_commit()
bcachefs: iter->real_pos
bcachefs: Extents may now cross btree node boundaries
bcachefs: Add error message for some allocation failures
bcachefs: Fix for bch2_btree_node_get_noiter() returning -ENOMEM
bcachefs: Create allocator threads when allocating filesystem
bcachefs: Don't call into journal reclaim when we're not supposed to
bcachefs: Don't use inode btree key cache in fsck code
bcachefs: Fix a 64 bit divide on 32 bit
bcachefs: Dump journal state when we get stuck
bcachefs: Add code to scan for/rewite old btree nodes
bcachefs: Scan for old btree nodes if necessary on mount
bcachefs: Fix bkey format generation for 32 bit fields
bcachefs: Fix an allocator startup race
bcachefs: Fix some (spurious) warnings about uninitialized vars
bcachefs: Use x-macros for compat feature bits
bcachefs: Add a cond_seched() to the allocator thread
bcachefs: Don't fail mounts due to devices that are marked as failed
bcachefs: Fix bch2_write_super to obey very_degraded option
bcachefs: Bring back metadata only gc
bcachefs: Fix a use-after-free in bch2_gc_mark_key()
bcachefs: Don't drop ptrs to btree nodes
bcachefs: Fix copygc threshold
bcachefs: Add copygc wait to sysfs
bcachefs: Rip out copygc pd controller
bcachefs: Add allocator thread state to sysfs
bcachefs: Fix for copygc getting stuck waiting for reserve to be filled
bcachefs: Start journal reclaim thread earlier
bcachefs: Add a mempool for btree_trans bump allocator
bcachefs: Add a mempool for the replicas delta list
bcachefs: Fix bch2_btree_cache_scan()
bcachefs: Kill support for !BTREE_NODE_NEW_EXTENT_OVERWRITE()
bcachefs: KEY_TYPE_discard is no longer used
bcachefs: Rename KEY_TYPE_whiteout -> KEY_TYPE_hash_whiteout
bcachefs: Rename BTREE_ID enums for consistency with other enums
bcachefs: Use x-macros for more enums
bcachefs: Improve handling of extents in bch2_trans_update()
bcachefs: btree_iter_live()
bcachefs: Delete some dead code
bcachefs: btree_iter_prev_slot()
bcachefs: Use bch2_bpos_to_text() more consistently
bcachefs: Fix bpos_diff()
bcachefs: Fix compat code for superblock
bcachefs: Simplify for_each_btree_key()
bcachefs: Simplify bch2_btree_iter_peek_prev()
bcachefs: __bch2_trans_get_iter() refactoring, BTREE_ITER_NOT_EXTENTS
bcachefs: Fix locking in bch2_btree_iter_traverse_cached()
bcachefs: Have fsck check for stripe pointers matching stripe
bcachefs: Use __bch2_trans_do() in a few more places
bcachefs: Kill ei_str_hash
bcachefs: Consolidate bch2_read_retry and bch2_read()
bcachefs: Fix read retry path for indirect extents
bcachefs: Kill reflink option
bcachefs: Fix a btree iterator leak
bcachefs: Kill btree_iter_pos_changed()
bcachefs: Add a print statement for when we go read-write
bcachefs: Don't list non journal devs in journal_debug_to_text()
bcachefs: Fix btree iterator leak in extent_handle_overwrites()
bcachefs: Fsck code refactoring
bcachefs: btree_iter_set_dontneed()
bcachefs: Require all btree iterators to be freed
bcachefs: Assert that iterators aren't being double freed
bcachefs: Kill bkey ops->debugcheck method
bcachefs: Don't overwrite snapshot field in bch2_cut_back()
bcachefs: Validate bset version field against sb version fields
bcachefs: Don't unconditially version_upgrade in initialize
bcachefs: Fix iterator picking
bcachefs: Optimize bch2_btree_iter_verify_level()
bcachefs: Switch extent_handle_overwrites() to one key at a time
bcachefs: Get disk reservation when overwriting data in old snapshot
bcachefs: Replace bch2_btree_iter_next() calls with bch2_btree_iter_advance
bcachefs: Have btree_iter_next_node() use btree_iter_set_search_pos()
bcachefs: Iterators are now always consistent with iter->real_pos
bcachefs: Kill btree_iter_peek_uptodate()
bcachefs: Internal btree iterator renaming
bcachefs: Improve iter->real_pos handling
bcachefs: Consolidate bch2_btree_iter_peek() and peek_with_updates()
bcachefs: Update iter->real_pos lazily
bcachefs: Include snapshot field in bch2_bpos_to_text
bcachefs: Add an .invalid method for bch2_btree_ptr_v2
bcachefs: Improve inode deletion code
bcachefs: Split btree_iter_traverse and bch2_btree_iter_traverse()
bcachefs: Use pcpu mode of six locks for interior nodes
bcachefs: Increase default journal size
bcachefs: Drop bkey noops
bcachefs: Generate better bkey formats when splitting nodes
bcachefs: Fix building of aux search trees
bcachefs: Fix packed bkey format calculation for new btree roots
bcachefs: Fix for bch2_trans_commit() unlocking when it's not supposed to
bcachefs: Simplify btree_node_iter_init_pack_failed()
bcachefs: btree key cache locking improvements
bcachefs: Add a mechanism for running callbacks at trans commit time
bcachefs: Split out bpos_cmp() and bkey_cmp()
bcachefs: Start using bpos.snapshot field
bcachefs: Inode backpointers
bcachefs: Change inode allocation code for snapshots
bcachefs: Don't use bch2_inode_find_by_inum() in move.c
bcachefs: Have journal reclaim thread flush more aggressively
bcachefs: Free iterator in bch2_btree_delete_range_trans()
bcachefs: Add repair code for out of order keys in a btree node.
buckets.c fixups XXX squash
bcachefs: Don't make foreground writes wait behind journal reclaim too long
bcachefs: Move btree lock debugging to slowpath fn
bcachefs: Improve bch2_trans_relock()
bcachefs: Add a sysfs var for average btree write size
bcachefs: Improve bch2_btree_update_start()
bcachefs: Change where merging of interior btree nodes is trigger from
bcachefs: Kill bch2_btree_node_get_sibling()
bcachefs: bch2_foreground_maybe_merge() now correctly reports lock restarts
bcachefs: Move btree node merging to before transaction commit
bcachefs: Drop trans->nounlock
bcachefs: Fix BTREE_FOREGROUND_MERGE_HYSTERESIS
bcachefs: Increase commality between BTREE_ITER_NODES and BTREE_ITER_KEYS
bcachefs: Fix this_cpu_ptr() usage
bcachefs: Fix journal deadlock
bcachefs: Be more careful about JOURNAL_RES_GET_RESERVED
bcachefs: Fix livelock calling bch2_mark_bkey_replicas()
bcachefs: Kill bch2_fs_usage_scratch_get()
bcachefs: Drop some memset() calls
bcachefs: Eliminate memory barrier from fast path of journal_preres_put()
bcachefs: kill bset_tree->max_key
bcachefs: Fix an uninitialized variable
bcachefs: Fix a startup race
bcachefs: Increase BSET_CACHELINE to 256 bytes
bcachefs: Eliminate more PAGE_SIZE uses
bcachefs: Don't flush btree writes more aggressively because of btree key cache
bcachefs: Improve bset compaction
bcachefs: Move some dirent checks to bch2_dirent_invalid()
bcachefs: Drop bch2_fsck_inode_nlink()
bcachefs: Don't wait for ALLOC_SCAN_BATCH buckets in allocator
bcachefs: Make sure to kick journal reclaim when we're waiting on it
bcachefs: Fix bch2_gc_btree_gens()
bcachefs: Fix BTREE_ITER_NOT_EXTENTS
bcachefs: Check inodes at start of fsck
bcachefs: Simplify hash table checks
bcachefs: Inode backpointers are now required
bcachefs: Redo check_nlink fsck pass
bcachefs: Fix bch2_trans_relock()
bcachefs: Fix fsck to not use bch2_link_trans()
bcachefs: Improved check_directory_structure()
bcachefs: BCH_BEATURE_atomic_nlink is obsolete
bcachefs: Fix heap overrun in bch2_fs_usage_read() XXX squash
bcachefs: Add the status of bucket gen gc to sysfs
bcachefs: Ensure bucket gen gc completes
bcachefs: Add a perf test for multiple updates per commit
bcachefs: Drop old style btree node coalescing
bcachefs: Better iterator picking
bcachefs: Don't call bch2_btree_iter_traverse() unnecessarily
bcachefs: Fix bch2_gc_done() error messages
bcachefs: Fix journal_reclaim_wait_done()
bcachefs: Improve bch2_btree_iter_traverse_all()
bcachefs: Don't downgrade iterators in bch2_trans_get_iter()
bcachefs: Improve trans_restart_mem_realloced tracepoint
bcachefs: Fix bch2_trans_mark_dev_sb()
bcachefs: Simplify bch2_set_nr_journal_buckets()
bcachefs: Fix an RCU splat
bcachefs: Fix journal reclaim loop
bcachefs: Fix transaction restarts due to upgrading of cloned iterators
bcachefs: Simplify fsck remove_dirent()
bcachefs: Fix some small memory leaks
bcachefs: Fix an unused var warning in userspace
bcachefs: Refactor bchfs_fallocate() to not nest btree_trans on stack
bcachefs: gc shouldn't care about owned_by_allocator
bcachefs: Allocator thread doesn't need gc_lock anymore
bcachefs: Handle errors in bch2_trans_mark_update()
bcachefs: Check that keys are in the correct btrees
bcachefs: Always check for invalid bkeys in trans commit path
bcachefs: Allocator refactoring
bcachefs: Preallocate trans mem in bch2_migrate_index_update()
bcachefs: Fix for btree_gc repairing interior btree ptrs
bcachefs: Fix a use after free
bcachefs: Punt btree writes to workqueue to submit
bcachefs: Fix two btree iterator leaks
bcachefs: Update bch2_btree_verify()
bcachefs: Fix a deadlock on journal reclaim
bcachefs: Don't BUG() in update_replicas
bcachefs: Lookup/create lost+found lazily
bcachefs: Fix repair leading to replicas not marked
bcachefs: Don't BUG_ON() btree topology error
bcachefs: Use mmap() instead of vmalloc_exec() in userspace
bcachefs: Fix an out of bounds read
bcachefs: Fix bch2_verify_keylist_sorted
bcachefs: Rewrite btree nodes with errors
bcachefs: New helper __bch2_btree_insert_keys_interior()
bcachefs: Fix key cache assertion
bcachefs: New and improved topology repair code
bcachefs: Fix a null ptr deref
bcachefs: New check_nlinks algorithm for snapshots
bcachefs: Evict btree nodes we're deleting
bcachefs: Fix __bch2_trans_get_iter()
bcachefs: New tracepoint for bch2_trans_get_iter()
bcachefs: Call bch2_inconsistent_error() on missing stripe/indirect extent
bcachefs: Change bch2_btree_key_cache_count() to exclude dirty keys
bcachefs: Change copygc wait amount to be min of per device waits
bcachefs: Ensure that fpunch updates inode timestamps
bcachefs: Make sure to initialize j->last_flushed
bcachefs: Add a tracepoint for when we block on journal reclaim
bcachefs: Fix time handling
bcachefs: Mark newly allocated btree nodes as accessed
bcachefs: Clean up bch2_btree_and_journal_walk()
bcachefs: Fix usage of last_seq + encryption
bcachefs: Fix some refcounting bugs
bcachefs: Fix reflink trigger
bcachefs: Fix bch2_btree_iter_peek_with_updates()
bcachefs: Make sure to use BTREE_ITER_PREFETCH in fsck
bcachefs: Repair code for multiple types of data in same bucket
bcachefs: Fix locking in __bch2_set_nr_journal_buckets()
bcachefs: Make sure to pass a disk reservation to bch2_extent_update()
bcachefs: Fix bch2_extent_can_insert() call
bcachefs: Fix a memcpy call
bcachefs: Fix for bch2_bkey_pack_pos() not initializing len/version fields
bcachefs: Ratelimiting for writeback IOs
bcachefs: Split extents if necessary in bch2_trans_update()
bcachefs: Make bch2_remap_range respect O_SYNC
bcachefs: Fix inode backpointers in RENAME_OVERWRITE
bcachefs: Fix for buffered writes getting -ENOSPC
bcachefs: Fix an uninitialized var
bcachefs: Don't repair btree nodes until after interior journal replay is done
bcachefs: Add a debug mode that always reads from every btree replica
bcachefs: Add a workqueue for btree io completions
bcachefs: Improve FS_IOC_GOINGDOWN ioctl
bcachefs: Fix an issue with inconsistent btree writes after unclean shutdown
bcachefs: Fix a null ptr deref
bcachefs: Add a cond_resched call to the copygc main loop
bcachefs: Add a tracepoint for copygc waiting
bcachefs: Don't use uuid in tracepoints
bcachefs: Inline fastpath of bch2_disk_reservation_add()
bcachefs: Kill bch_write_op.index_update_fn
bcachefs: Don't use bch_write_op->cl for delivering completions
bcachefs: Add an option to control sharding new inode numbers
bcachefs: Reflink refcount fix
bcachefs: Fix journal write error path
bcachefs: Fix pathalogical behaviour with inode sharding by cpu ID
bcachefs: Split out btree_error_wq
bcachefs: Fix a deadlock
bcachefs: Assorted endianness fixes
bcachefs: Fsck for reflink refcounts
bcachefs: Don't fragment extents when making them indirect
bcachefs: Journal space calculation fix
bcachefs; Check for allocator thread shutdown
bcachefs: Check for errors from bch2_trans_update()
bcachefs: Preallocate transaction mem
bcachefs: Improve btree iterator tracepoints
bcachefs: btree_iter->should_be_locked
bcachefs: Fix a spurious debug mode assertion
bcachefs: Don't mark superblocks past end of usable space
bcachefs: Fix a buffer overrun
bcachefs: More topology repair code
bcachefs: Drop all btree locks when submitting btree node reads
bcachefs: Child btree iterators
bcachefs: BTREE_ITER_WITH_UPDATES
bcachefs: bch2_btree_iter_peek_slot() now supports BTREE_ITER_WITH_UPDATES
bcachefs: Kill __bch2_btree_iter_peek_slot_extents()
bcachefs: bch2_btree_iter_peek_slot() now saves initial position when searching
bcachefs: Move extent_handle_overwrites() to bch2_trans_update()
bcachefs: Simplify reflink trigger
bcachefs: Kill trans->updates2
bcachefs: Clean up key merging
bcachefs: Refactor extent_handle_overwrites()
bcachefs: Re-implement extent merging in transaction commit path
bcachefs: Improved extent merging
bcachefs: Merging for indirect extents
bcachefs: Always zero memory from bch2_trans_kmalloc()
bcachefs: Fix overflow in journal_replay_entry_early
bcachefs: Fix null ptr deref when splitting compressed extents
bcachefs: Allow shorter JSET_ENTRY_dev_usage entries
bcachefs: Kill bch2_btree_iter_peek_cached()
bcachefs: Don't underflow c->sectors_available
bcachefs: Clear iter->should_be_locked in bch2_trans_reset
bcachefs: Fix a memory leak in dio write path
bcachefs: Make sure bch2_trans_mark_update uses correct iter flags
bcachefs: Kill __btree_delete_at()
bcachefs: Improve iter->should_be_locked
bcachefs: fix truncate with ATTR_MODE
bcachefs: Extensive triggers cleanups
bcachefs: Don't disable preemption unnecessarily
bcachefs: Don't ratelimit certain fsck errors
bcachefs: Don't loop into topology repair
bcachefs: Fix btree_node_read_all_replicas() error handling
bcachefs: Use memalloc_nofs_save() in bch2_read_endio()
bcachefs: Fix shift-by-64 in bch2_bkey_format_validate()
bcachefs: Fix bch2_btree_iter_peek_prev()
bcachefs: Split out SPOS_MAX
bcachefs: Fix bch2_btree_iter_peek_slot() assertion
bcachefs: bch2_d_types[]
bcachefs: BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE
bcachefs: Regularize argument passing of btree_trans
bcachefs: Really don't hold btree locks while btree IOs are in flight
bcachefs: Mask out unknown compat features when going read-write
bcachefs: Kick off btree node writes from write completions
bcachefs: Ensure bad d_type doesn't oops in bch2_dirent_to_text()
bcachefs: Add open_buckets to sysfs
bcachefs: Add safe versions of varint encode/decode
bcachefs: Fix an allocator shutdown deadlock
bcachefs: Add an option for whether inodes use the key cache
bcachefs: Fix a memory leak in the dio write path
bcachefs: Tighten up btree_iter locking assertions
bcachefs: Improvements to fsck check_dirents()
bcachefs: Fix bch2_btree_iter_rewind()
bcachefs: Fixes for unit tests
bcachefs: Improve btree_bad_header() error message
bcachefs: Update btree ptrs after every write
Revert "bcachefs: statfs bfree and bavail should be the same"
bcachefs: BSET_OFFSET()
bcachefs: Don't downgrade in traverse()
bcachefs: Handle lock restarts in bch2_xattr_get()
bcachefs: Use bch2_inode_find_by_inum() in truncate
bcachefs: Don't squash return code in check_dirents()
bcachefs: Pretty-ify bch2_bkey_val_to_text()
bcachefs: Fix a btree iterator leak
bcachefs: Use bch2_trans_do() in bch2_btree_key_cache_journal_flush()
bcachefs: bch2_btree_iter_relock_intent()
bcachefs: Minor tracepoint improvements
bcachefs: Add an option for btree node mem ptr optimization
bcachefs: Don't traverse iterators in __bch2_trans_commit()
bcachefs: bch2_trans_relock() only relocks iters that should be locked
bcachefs: traverse_all() is responsible for clearing should_be_locked
bcachefs: Always check for transaction restarts
bcachefs: Use bch2_trans_begin() more consistently
bcachefs: Clean up interior update paths
bcachefs: Change lockrestart_do() to always call bch2_trans_begin()
bcachefs: trans->restarted
bcachefs: bch2_btree_iter_traverse() shouldn't normally call traverse_all()
bcachefs: Ensure btree_iter_traverse() obeys iter->should_be_locked
bcachefs: __bch2_trans_commit() no longer calls bch2_trans_reset()
bcachefs: Btree splits no longer automatically cause a transaction restart
bcachefs: Kill BTREE_INSERT_NOUNLOCK
bcachefs: traverse_all() shouldn't be restarting the transaction
bcachefs: Don't drop read locks at transaction commit time
bcachefs: Zero out mem_ptr field in btree ptr keys from journal replay
bcachefs: Keep a sorted list of btree iterators
bcachefs: Add flags field to bch2_inode_to_text()
bcachefs: Ensure that new inodes hit underlying btree
bcachefs: Fix an unhandled transaction restart
bcachefs: Fix btree_trans_peek_updates()
bcachefs: Minor btree iter refactoring
bcachefs: Fix a valgrind conditional jump
bcachefs: Disk space accounting fix
bcachefs: Be sure to check ptr->dev in copygc pred function
bcachefs: Fix unhandled transaction restart in bch2_gc_btree_gens()
bcachefs: Free iterator if we have duplicate
bcachefs: Add SPOS_MAX to bpos_to_text()
bcachefs: Ensure iter->real_pos is consistent with key returned
bcachefs: bch2_dump_trans_iters_updates()
bcachefs: Reduce iter->trans usage
bcachefs: Refactor bch2_trans_update_extent()
bcachefs: Kill BTREE_ITER_SET_POS_AFTER_COMMIT
bcachefs: Better algorithm for btree node merging in write path
bcachefs: Further reduce iter->trans usage
bcachefs: Clean up/rename bch2_trans_node_* fns
bcachefs: More renaming
bcachefs: Prefer using btree_insert_entry to btree_iter
bcachefs: Kill BTREE_ITER_NEED_PEEK
bcachefs: Kill BTREE_ITER_NODES
bcachefs: Add an assertion for removing btree nodes from cache
bcachefs: Improve an error message
bcachefs: Fix initialization of bch_write_op.nonce
bcachefs: btree_path
bcachefs: Kill bpos_diff() XXX check for perf regression
bcachefs: Add more assertions for locking btree iterators out of order
bcachefs: Extent btree iterators are no longer special
bcachefs: Tighten up btree locking invariants
bcachefs: Drop some fast path tracepoints
bcachefs: Kill retry loop in btree merge path
bcachefs: No need to clone iterators for update
bcachefs: Enabled shard_inode_numbers by default
bcachefs: Add a missing btree_path_make_mut() call
bcachefs: Optimize btree lookups in write path
bcachefs: Consolidate intent lock code in btree_path_up_until_good_node
bcachefs: normalize_read_intent_locks
bcachefs: Better approach to write vs. read lock deadlocks
bcachefs: Add missing BTREE_ITER_INTENT
bcachefs: Fix some compiler warnings
bcachefs: Add a missing bch2_trans_relock() call
bcachefs: Improve btree_node_mem_ptr optimization
Revert "bcachefs: Add more assertions for locking btree iterators out of order"
bcachefs: Disable quota support
bcachefs: Subvolumes, snapshots
bcachefs: Add support for dirents that point to subvolumes
bcachefs: Per subvolume lost+found
bcachefs: Add subvolume to ei_inode_info
bcachefs: BTREE_ITER_FILTER_SNAPSHOTS
bcachefs: Plumb through subvolume id
bcachefs: Update fsck for snapshots
bcachefs: Convert io paths for snapshots
bcachefs: Whiteouts for snapshots
bcachefs: Update data move path for snapshots
bcachefs: Fix unit & perf tests for snapshots
bcachefs: Require snapshot id to be set
bcachefs: Snapshot creation, deletion
bcachefs: Fix an assertion
bcachefs: Rev the on disk format version for snapshots
bcachefs: Fix check_inode_update_hardlinks()
bcachefs: Fix a spurious fsck error
bcachefs: Fix allocator shutdown error message
bcachefs: bch2_subvolume_get()
bcachefs: Fix bch2_dev_remove_alloc()
bcachefs: Ensure btree_path consistent with node iterators
bcachefs: More btree iterator fixes
bcachefs: Fixes for usrdata/metadata drop paths
bcachefs: Fix bch2_move_btree()
bcachefs: Fix a pcpu var splat
bcachefs: Snapshot deletion fix
bcachefs: Fix rereplicate_pred()
bcachefs: Fix deletion in __bch2_dev_usrdata_drop()
bcachefs: Fix implementation of KEY_TYPE_error
bcachefs: Don't allocate too-big bios
bcachefs: Improve bch2_dump_trans_paths_updates()
bcachefs: Fix __bch2_dirent_read_target()
bcachefs: Zero out reflink_p val in bch2_make_extent_indirect()
bcachefs: Fix a cache coherency bug in bch2_subvolume_create()
bcachefs: Fix check_path() across subvolumes
bcachefs: Improve reflink repair code
bcachefs: for_each_btree_node() now returns errors directly
bcachefs: bch2_trans_exit() no longer returns errors
bcachefs: Handle transaction restarts in bch2_blacklist_entries_gc()
bcachefs: New on disk format to fix reflink_p pointers
bcachefs: Fix for leaking of reflinked extents
bcachefs: Fix check_path() for snapshots
bcachefs: Delete dentry when deleting snapshots
bcachefs: cached data shouldn't prevent fs from mounting
bcachefs: Fix restart handling in for_each_btree_key()
bcachefs: Subvol dirents are now only visible in parent subvol
bcachefs: Fix error handling in bch2_trans_extent_merging
bcachefs: Fix a transaction path overflow
bcachefs: Fix dev accounting after device add
bcachefs: Must check for errors from bch2_trans_cond_resched()
bcachefs: Fix bch2_btree_iter_next_node()
bcachefs: bch2_btree_node_rewrite() now returns transaction restarts
bcachefs: Ensure we flush btree updates in evacuate path
bcachefs: Fix fsck path for refink pointers
bcachefs: More general fix for transaction paths overflow
bcachefs: Don't run triggers in fix_reflink_p_key()
bcachefs: Improve error messages in trans_mark_reflink_p()
bcachefs: Add BCH_SUBVOLUME_UNLINKED
bcachefs: Drop bch2_journal_meta() call when going RW
bcachefs: Don't do upgrades in nochanges mode
bcachefs: Move bch2_evict_subvolume_inodes() to fs.c
bcachefs: Fix bch2_btree_iter_advance()
bcachefs: Improve transaction restart handling in fsck code
bcachefs: Ensure journal doesn't get stuck in nochanges mode
bcachefs: Fix bch2_mark_update()
bcachefs: Assorted ec fixes
bcachefs: Convert bch2_mark_key() to take a btree_trans *
bcachefs: BTREE_TRIGGER_INSERT now only means insert
bcachefs: Fix faulty assertion
bcachefs: Fix upgrade_readers()
bcachefs: Fix trans_lock_write()
bcachefs: Improve error message in bch2_write_super()
bcachefs: Fix check_inodes()
bcachefs: Fix __remove_dirent()
bcachefs: BTREE_UPDATE_NOJOURNAL
bcachefs: Update inode on every write
bcachefs: Add journal_seq to inode & alloc keys
bcachefs: Kill journal buf bloom filter
bcachefs: Kill bucket quantiles sysfs code
bcachefs: Switch fsync to use bi_journal_seq
bcachefs: Fix upgrade path for reflink_p fix
bcachefs: Clean up error reporting in the startup path
bcachefs: path->should_be_locked fixes
bcachefs: bch2_assert_pos_locked()
bcachefs: Refactor bch2_fpunch_at()
bcachefs: Fallocate fixes
bcachefs: Inode updates should generally be BTREE_INSERT_NOFAIL
bcachefs: Don't check for -ENOSPC in page writeback
bcachefs: Fix infinite loop in bch2_btree_cache_scan()
bcachefs: Fix an exiting of uninitialized iterator
bcachefs: Tweak vfs cache shrinker behaviour
bcachefs: More enum strings
bcachefs: Improve bch2_reflink_p_to_text()
bcachefs: Convert journal BUG_ON() to a warning
bcachefs: Fix missing field initialization
bcachefs: Refactor journal replay code
bcachefs: Update export_operations for snapshots
bcachefs: Also log device name in userspace
bcachefs: Disk space accounting fix on brand-new fs
bcachefs: Run insert triggers before overwrite triggers
bcachefs: Fix error reporting from bch2_journal_flush_seq
bcachefs: Add a bit of missing repair code
bcachefs: Fix BCH_FS_ERROR flag handling
bcachefs: Fix an i_sectors accounting bug
bcachefs: Fix i_sectors_leak in bch2_truncate_page
bcachefs: SECTOR_DIRTY_RESERVED
bcachefs: Fix quota support for snapshots
bcachefs: Apply workaround for too many btree iters to read path
bcachefs: Kill PAGE_SECTOR_SHIFT
bcachefs: Fix page state when reading into !PageUptodate pages
bcachefs: Fix page state after fallocate
bcachefs: Convert bucket_alloc_ret to negative error codes
bcachefs: Fix reflink path for snapshots
bcachefs: Kill bch2_replicas_delta_list_marked()
bcachefs: Push c->mark_lock usage down to where it is needed
bcachefs: Handle replica marking fsck errors locally
bcachefs: Erasure coding fixes
bcachefs: Fix btree_path leaks in bch2_trans_update()
bcachefs: Convert journal sysfs params to regular options
bcachefs: Fix copygc sectors_to_move calculation
bcachefs: Specify filesystem options
bcachefs: Make __bch2_journal_debug_to_text() more readable
bcachefs: bch2_trans_update() is now __must_check
bcachefs: Convert a BUG_ON() to a warning
bcachefs: Split out struct gc_stripe from struct stripe
bcachefs: Don't erasure code cached ptrs
bcachefs: Fix null ptr deref in fsck_inode_rm()
bcachefs: Print out OPT_SECTORS options in bytes
bcachefs: Add more time_stats
bcachefs: bch2_alloc_write()
bcachefs: Improve alloc_mem_to_key()
bcachefs: Add missing bch2_trans_iter_exit() call
bcachefs: Fix debug build in userspace
bcachefs: Fix an assertion in bch2_truncate()
bcachefs: Split out CONFIG_BCACHEFS_DEBUG_TRANSACTIONS
bcachefs: Kill bch2_sort_repack_merge()
bcachefs: Don't call bch2_bkey_transform() unnecessarily
bcachefs: Kill some obsolete sysfs code
bcachefs: Make sure bch2_bucket_alloc_new_fs() obeys buckets_nouse
bcachefs: Optimize memory accesses in bch2_btree_node_get()
bcachefs: Fix some shutdown path bugs
bcachefs: BTREE_ITER_NOPRESERVE
bcachefs: Fix debugfs -bfloat-failed
bcachefs: Option improvements
bcachefs: Turn encoded_extent_max into a regular option
bcachefs: Fix a null ptr deref in bch2_inode_delete_keys()
bcachefs: Kill non-lru cache replacement policies
bcachefs: Rewrite bch2_bucket_alloc_new_fs()
bcachefs: bch2_bucket_alloc_new_fs() no longer depends on bucket marks
bcachefs: Don't start allocator threads too early
bcachefs: Kill ptr_bucket_mark()
bcachefs: bch2_journal_key_insert() no longer transfers ownership
bcachefs: Fix bch2_journal_meta()
bcachefs: Use BTREE_ITER_NOPRESERVE in bch2_btree_iter_verify_ret()
bcachefs: Journal initialization fixes
bcachefs: Delete some obsolete journal_seq_blacklist code
bcachefs: bch2_alloc_sectors_append_ptrs() now takes cached flag
bcachefs: Refactor open_bucket code
bcachefs: Put open_buckets in a hashtable
bcachefs: Separate out gc_bucket()
bcachefs: New in-memory array for bucket gens
bcachefs: Fix allocator + journal interaction
bcachefs: Kill bch2_ec_mem_alloc()
bcachefs: Update sysfs compression_stats for snapshots
bcachefs: Run scan_old_btree_nodes after version upgrade
bcachefs: Add a tracepoint for the btree cache shrinker
bcachefs: bch2_journal_noflush_seq()
bcachefs: Always check for bucket reuse after read
bcachefs: Optimize bucket reuse
bcachefs: bch2_hprint(): don't print decimal if conversion was exact
bcachefs: Improve error messages in device add path
bcachefs: Fix keylist size in btree_update
bcachefs: Add an error message for copygc spinning
bcachefs: Add iter_flags arg to bch2_btree_delete_range()
bcachefs: Journal replay does't resort main list of keys
bcachefs: Add error messages for memory allocation failures
bcachefs: BCH_JSET_ENTRY_log
bcachefs: bch2_journal_entry_to_text()
bcachefs: Fix race between btree updates & journal replay
bcachefs: Log what we're doing when repairing
bcachefs: Improve error messages in superblock write path
bcachefs: Make sure BCH_FS_FSCK_DONE gets set
bcachefs: Tweak journal reclaim order
bcachefs: BTREE_ITER_WITH_JOURNAL
fixup! bcachefs: Factor out __bch2_btree_iter_set_pos()
bcachefs: Simplify journal replay
bcachefs: bch_dev->dev
bcachefs: Fix an assertion
bcachefs: Kill bch2_bset_fix_invalidated_key()
bcachefs: Make eytzinger size parameter more conventional
bcachefs: Use kvmalloc() for array of sorted keys in journal replay
bcachefs: Improved superblock-related error messages
bcachefs: Add verbose log messages for journal read
bcachefs: Fix bch2_journal_seq_blacklist_add()
bcachefs: Switch to __func__for recording where btree_trans was initialized
bcachefs: BTREE_ITER_FILTER_SNAPSHOTS is selected automatically
bcachefs: Log & error message improvements
Revert "bcachefs: Delete some obsolete journal_seq_blacklist code"
bcachefs: Fix an uninitialized variable
bcachefs: Fix bch2_check_fix_ptrs()
bcachefs: Improve path for when btree_gc needs another pass
bcachefs: Also print out in-memory gen on stale dirty pointer
bcachefs: New data structure for buckets waiting on journal commit
bcachefs: Fix check_pos_snapshot_overwritten for !snapshots
bcachefs: Rename data_op_data_progress -> data_jobs
bcachefs: Refactor trigger code
bcachefs: Use BTREE_INSERT_USE_RESERVE in btree_update_key()
bcachefs: Fix an error path in bch2_snapshot_node_create()
bcachefs: New snapshot unit test
bcachefs: Tracepoint improvements
bcachefs: Refactor bch2_btree_iter()
bcachefs: iter->update_path
bcachefs: Simplify bch2_inode_delete_keys()
bcachefs: Handle transaction restarts in __bch2_move_data()
bcachefs: BTREE_INSERT_LAZY_RW is only for recovery path
bcachefs: Kill allocator short-circuit invalidate
bcachefs: Don't use in-memory bucket array for alloc updates
bcachefs: Ignore cached data when calculating fragmentation
bcachefs: Delete some dead code
bcachefs: Log message improvements
bcachefs: Don't keep nodes in btree_reserve locked
bcachefs: Fix freeing in bch2_dev_buckets_resize()
bcachefs: Improve btree_key_cache_flush_pos()
bcachefs: btree_id_cached()
bcachefs: bch2_btree_path_set_pos()
bcachefs: Stash a copy of key being overwritten in btree_insert_entry
bcachefs: run_one_trigger() now checks journal keys
bcachefs: BTREE_ITER_WITH_KEY_CACHE
bcachefs: Btree key cache coherency
bcachefs: Inode create no longer needs to probe key cache
bcachefs: btree_gc no longer uses main in-memory bucket array
bcachefs: Copygc no longer uses bucket array
bcachefs: bch2_gc_gens() no longer uses bucket array
bcachefs: Fix reflink repair code
bcachefs: Small fsck fix
bcachefs: Print a better message for mark and sweep pass
bcachefs: Kill bch2_bkey_debugcheck
bcachefs: Fix locking in data move path
bcachefs: Delete redundant tracepoint
bcachefs: Also show when blocked on write locks
bcachefs: Fix __bch2_btree_node_lock
bcachefs: Kill verify_not_stale()
bcachefs: Check for stale dirty pointer before reads
bcachefs: Fix slow tracepoints
bcachefs: Fix __btree_path_traverse_all
bcachefs: Improve journal_entry_btree_keys_to_text()
bcachefs: Stale ptr cleanup is now done by gc_gens
bcachefs: Only allocate buckets_nouse when requested
bcachefs: Change bch2_dev_lookup() to not use lookup_bdev()
bcachefs: Fix failure to allocate btree node in cache
bcachefs: Check for errors from crypto_skcipher_encrypt()
bcachefs: Store logical location of journal entries
bcachefs: Delete some flag bits that are no longer used
bcachefs: Change __bch2_trans_commit() to run triggers then get RW
bcachefs: opts.read_journal_only
bcachefs: Don't issue discards when in nochanges mode
bcachefs: Kill bch_scnmemcpy()
bcachefs: Add .to_text() methods for all superblock sections
bcachefs: Fix a use after free
bcachefs: Add tabstops to printbufs
bcachefs: Btree key cache optimization
bcachefs: Drop journal_write_compact()
bcachefs: Set BTREE_NODE_SEQ() correctly in merge path
bcachefs: Fix for journal getting stuck
bcachefs: Revert "Ensure journal doesn't get stuck in nochanges mode"
bcachefs: Normal update/commit path now works before going RW
bcachefs: Improve reflink repair code
bcachefs: Use unlikely() in err_on() macros
bcachefs: Improve some btree node read error messages
bcachefs: Fix 32 bit build
bcachefs: bch2_trans_mark_key() now takes a bkey_i *
bcachefs: Consolidate trigger code a bit
bcachefs: Trigger code uses stashed copy of old key
bcachefs: Run alloc triggers last
bcachefs: Always clear should_be_locked in bch2_trans_begin()
bcachefs: Fix bch2_journal_pins_to_text()
bcachefs: Improve debug assertion
bcachefs: Convert bch2_pd_controller_print_debug() to a printbuf
bcachefs: Heap allocate printbufs
bcachefs: Fix journal_flush_done()
bcachefs: Fix btree path sorting
bcachefs: Don't spin in journal reclaim
bcachefs: Kill BCH_FS_HOLD_BTREE_WRITES
bcachefs: Use x-macros for btree node flags
bcachefs: Improve struct journal layout
bcachefs: Start moving debug info from sysfs to debugfs
bcachefs: Fix locking in btree_node_write_done()
bcachefs: Improve btree_node_write_if_need()
bcachefs: Kill bch2_btree_node_write_cond()
bcachefs: Fix race leading to btree node write getting stuck
bcachefs: Fix a memory leak
bcachefs: Fix a use after free
bcachefs: Delete some dead journal code
bcachefs: Kill JOURNAL_NEED_WRITE
bcachefs: bch2_journal_halt() now takes journal lock
bcachefs: Drop unneeded journal pin in bch2_btree_update_start()
bcachefs: Journal seq now incremented at entry open, not close
bcachefs: Refactor journal code to not use unwritten_idx
bcachefs: __journal_entry_close() never fails
bcachefs: Finish writing journal after journal error
bcachefs: Make bch2_btree_cache_scan() try harder
bcachefs: Simplify parameters to bch2_btree_update_start()
bcachefs: Refactor bch2_btree_node_mem_alloc()
bcachefs: Fix usage of six lock's percpu mode
bcachefs: Fix transaction path overflow in fiemap
bcachefs: Convert bch2_sb_to_text to master option list
bcachefs: Don't arm journal->write_work when journal entry !open
bcachefs: Don't keep around btree_paths unnecessarily
bcachefs: Fix pr_tab_rjust()
bcachefs: Check for rw before setting opts via sysfs
bcachefs: Skip periodic wakeup of journal reclaim when journal empty
bcachefs: Revert UUID format-specifier change
bcachefs: Use bio_iov_vecs_to_alloc()
bcachefs: Fix dio write path with loopback dio mode
bcachefs: Fix error handling in traverse_all()
bcachefs: Fix lock ordering under traverse_all()
bcachefs: Change flags param to bch2_btree_delete_range to update_flags
bcachefs: bch2_journal_log_msg()
bcachefs: Allocate journal buckets sequentially
bcachefs: Add a missing wakeup
bcachefs: Delay setting path->should_be_locked
bcachefs: bch2_btree_iter_peek_upto()
bcachefs: Drop !did_work path from do_btree_insert_one()
bcachefs: bch2_trans_inconsistent()
bcachefs: bch2_trans_updates_to_text()
bcachefs: Revalidate pointer to old bkey val before calling mem triggers
bcachefs: Move trigger fns to bkey_ops
bcachefs: Fix BTREE_TRIGGER_WANTS_OLD_AND_NEW
bcachefs: darrays
bcachefs: Restore journal write point at startup
bcachefs: Convert some WARN_ONs to WARN_ON_ONCE
bcachefs: Fix large key cache keys
bcachefs: x-macro metadata version enum
bcachefs: Better superblock opt validation
bcachefs: Make minimum journal_flush_delay nonzero
bcachefs: Change journal_io.c assertion to error message
bcachefs: Reset journal flush delay to default value if zeroed
bcachefs: Add printf format attribute to bch2_pr_buf()
bcachefs: Fix an unitialized var warning in userspace
bcachefs: Heap code fix
bcachefs: Work around a journal self-deadlock
bcachefs: Fix error path in bch2_snapshot_set_equiv()
bcachefs: Add a missing btree_path_set_dirty() calls
bcachefs: btree_path_make_mut() clears should_be_locked
bcachefs: Use darray for extra_journal_entries
bcachefs: bch2_trans_log_msg()
bcachefs: Improve bch2_bkey_ptrs_to_text()
bcachefs: Move deletion of refcount=0 indirect extents to their triggers
bcachefs: Run overwrite triggers before insert
bcachefs: x-macroize alloc_reserve enum
bcachefs: Fix bch2_journal_pin_set()
bcachefs: Copygc allocations shouldn't be nowait
bcachefs: Introduce a separate journal watermark for copygc
bcachefs: bch2_btree_update_start() refactoring
bcachefs: Run btree updates after write out of write_point
bcachefs: bch_sb_field_journal_v2
bcachefs: KEY_TYPE_set
bcachefs: LRU btree
bcachefs: KEY_TYPE_alloc_v4
bcachefs: Freespace, need_discard btrees
bcachefs: Kill allocator threads & freelists
bcachefs: New discard implementation
bcachefs: New bucket invalidate path
bcachefs: Fsck for need_discard & freespace btrees
bcachefs: bch2_dev_usage_update() no longer depends on bucket_mark
bcachefs: Kill main in-memory bucket array
bcachefs: Kill struct bucket_mark
bcachefs: Fix pr_buf() calls
bcachefs: Use crc_is_compressed()
bcachefs: Improve read_from_stale_dirty_pointer() message
bcachefs: Don't write partially-initialized superblocks
bcachefs: gc mark fn fixes, cleanups
bcachefs: Add a tracepoint for superblock writes
bcachefs: Don't normalize to pages in btree cache shrinker
bcachefs: Gap buffer for journal keys
bcachefs: Convert .key_invalid methods to printbufs
bcachefs: Silence spurious copygc err when shutting down
bcachefs: More improvements for alloc info checks
bcachefs: Add rw to .key_invalid()
bcachefs: fsck: Work around transaction restarts
bcachefs: Check for read_time == 0 in bch2_alloc_v4_invalid()
bcachefs: Improve btree_bad_header()
bcachefs: Move alloc assertion to .key_invalid()
bcachefs: Use bch2_trans_inconsistent() more
bcachefs: Topology repair fixes
bcachefs: Add a sysfs attr for triggering discards
bcachefs: Fold bucket_state in to BCH_DATA_TYPES()
bcachefs: Refactor journal_keys_sort() to return an error code
bcachefs: Use a genradix for reading journal entries
bcachefs: Initialize ec work structs early
bcachefs: Don't skip triggers in fcollapse()
bcachefs: bch2_btree_delete_extent_at()
bcachefs: Fix a few warnings on 32 bit
bcachefs: Minor device removal fixes
bcachefs: Don't trigger extra assertions in journal replay
bcachefs: Fix a null ptr deref
bcachefs: Fix CPU usage in journal read path
bcachefs: Improve bch2_open_buckets_to_text()
bcachefs: Use bch2_trans_inconsistent_on() in more places
bcachefs: Ensure buckets have io_time[READ] set
bcachefs: Improve error message when alloc key doesn't match lru entry
bcachefs: Introduce bch2_journal_keys_peek_(upto|slot)()
bcachefs: Improve bch2_lru_delete() error messages
bcachefs: Fix inode_backpointer_exists()
bcachefs: Improve error logging in fsck.c
bcachefs: Fix for getting stuck in journal replay
bcachefs: In fsck, pass BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE when deleting dirents
bcachefs: Kill old rebuild_replicas option
bcachefs: Ensure sysfs show fns print a newline
bcachefs: Go emergency RO when i_blocks underflows
bcachefs: Improve some fsck error messages
bcachefs: Plumb btree_id & level to trans_mark
bcachefs: btree_update_interior.c prep for backpointers
bcachefs: bch2_btree_iter_peek_slot() now works on interior nodes
bcachefs: btree_path_set_level_(up|down)
bcachefs: bch2_btree_iter_peek_all_levels()
bcachefs: Allocate some extra room in btree_key_cache_fill()
bcachefs: Fix hash_check_key()
bcachefs: Shutdown path improvements
bcachefs: Lock ordering fix
bcachefs: Don't kick journal reclaim unless low on space
bcachefs: Tracepoint improvements
bcachefs: Go RW before bch2_check_lrus()
bcachefs: Fix journal_iters_fix()
bcachefs: Improve invalid bkey error message
bcachefs: Fix extent merging
bcachefs: Put btree_trans_verify_sorted() behind debug_check_iterators
bcachefs: Delete bch_writepage
bcachefs: LRU repair tweaks
bcachefs: Switch to key_type_user, not logon
bcachefs: Fix encryption path on arm
bcachefs: Always print when doing journal replay in fsck
bcachefs: Fix journal_keys_search() overhead
bcachefs: Print message on btree node read retry success
bcachefs: Fix error checking in bch2_fs_alloc()
bcachefs: bch2_trans_reset_updates()
bcachefs: Fix memory corruption in encryption path
bcachefs: Add some missing error messages
bcachefs: Refactor journal entry adding
bcachefs: Also log overwrites in journal
bcachefs: Fix for cmd_list_journal
bcachefs: Fix btree_and_journal_iter
bcachefs: Fix btree node read error path
bcachefs: Printbuf rework
bcachefs: Fix freespace initialization
bcachefs: Improved human readable integer parsing
bcachefs: Call bch2_do_invalidates() when going read write
bcachefs: Add a persistent counter for bucket invalidation
bcachefs: Fix btree node read retries
bcachefs: Add a persistent counter for bucket discards
bcachefs: Increase max size for btree_trans bump allocator
bcachefs: Fix assertion in bch2_dev_list_add_dev()
bcachefs: Improve an error message
bcachefs: Improve checksum error messages
bcachefs: Always use percpu_ref_tryget_live() on c->writes
bcachefs: Fix refcount leak in bch2_do_invalidates()
bcachefs: Check for extents with too many ptrs
bcachefs: Make IO in flight by copygc/rebalance configurable
bcachefs: btree key cache pcpu freedlist
bcachefs: Split out dev_buckets_free()
bcachefs: Pull out data_update.c
bcachefs: Improve "copygc requested to run" error message
bcachefs: Make verbose option settable at runtime
bcachefs: Fix assertion in topology repair
bcachefs: Always descend to leaf nodes it btree_gc
bcachefs: Don't BUG_ON() inode link count underflow
bcachefs: Bucket invalidate path improvements
bcachefs: Use BTREE_INSERT_LAZY_RW in bch2_check_alloc_info()
bcachefs: Improve bch2_check_alloc_info
bcachefs: Fix bch2_check_alloc_key()
bcachefs: Redo data_update interface
bcachefs: move.c refactoring
bcachefs: Get ref on c->writes in move.c
bcachefs: Fix move path when move_stats == NULL
bcachefs: Silence unimportant tracepoints
bcachefs: Put some repair messages behind opts->verbose
bcachefs: Silence some fsck errors when reconstructing alloc info
bcachefs: Rename __bch2_trans_do() -> commit_do()
bcachefs: Fix snapshot deletion
bcachefs: Switch data_update path to snapshot_id_list
bcachefs: fsck_inode_rm() shouldn't delete subvols
bcachefs: Fix subvol/snapshot deleting in recovery
bcachefs: Improve snapshots_seen
bcachefs: Improve fsck for subvols/snapshots
bcachefs: When fsck finds redundant snapshot keys, trigger snapshots cleanup
bcachefs: Fix repair for extent past end of inode
bcachefs: for_each_btree_key2()
bcachefs: Unlock in bch2_trans_begin() if we've held locks more than 10us
bcachefs: bch2_mark_alloc(): Do wakeups after updating usage
bcachefs: Improve bucket_alloc_fail tracepoint
bcachefs: Convert bch2_do_discards_work() to for_each_btree_key2()
bcachefs: Convert bch2_dev_freespace_init() to for_each_btree_key_commit()
bcachefs: Convert bch2_check_lrus() to for_each_btree_key_commit()
bcachefs: Convert more quota code to for_each_btree_key2()
bcachefs: Convert more fsck code to for_each_btree_key2()
bcachefs: Convert bch2_gc_done() for_each_btree_key2()
bcachefs: bch2_trans_run()
bcachefs: Convert bch2_do_invalidates_work() to for_each_btree_key2()
bcachefs: Convert bch2_dev_usrdata_drop() to for_each_btree_key2()
bcachefs: Convert subvol code to for_each_btree_key_commit()
bcachefs: Convert alloc code to for_each_btree_key_commit()
bcachefs: Add a counter for btree_trans restarts
bcachefs: Convert erasure coding to for_each_btree_key_commit()
bcachefs: ec_stripe_bkey_insert() -> for_each_btree_key_norestart()
bcachefs: Fix should_invalidate_buckets()
bcachefs: We can handle missing btree roots for all alloc btrees
bcachefs: Improved errcodes
bcachefs: Use bch2_err_str() in error messages
bcachefs: Prevent a btree iter overflow in alloc path
bcachefs: btree_trans_too_many_iters() is now a transaction restart
bcachefs: EINTR -> BCH_ERR_transaction_restart
bcachefs: Inject transaction restarts in debug mode
bcachefs: Convert fsck errors to errcode.h
bcachefs: for_each_btree_key_reverse()
bcachefs: Unit test updates
bcachefs: Convert debugfs code to for_each_btree_key2()
bcachefs: Fix check_i_sectors()
bcachefs: bch2_bucket_alloc_trans_early -> for_each_btree_key_norestart
bcachefs: Tighten up btree_path assertions
bcachefs: Add an O_DIRECT option (for userspace)
bcachefs: fsck: Fix nested transaction handling
bcachefs: Fix not punting to worqueue when promoting
bcachefs: Add distinct error code for key_cache_upgrade
bcachefs: Fix bch2_btree_trans_to_text()
bcachefs: Fix incorrectly freeing btree_path in alloc path
bcachefs: Tracepoint improvements
bcachefs: Improve an error message
bcachefs: Fix missing error handling in bch2_subvolume_delete()
bcachefs: Don't set should_be_locked on paths that aren't locked
bcachefs: BTREE_ITER_NO_NODE -> BCH_ERR codes
bcachefs: six_lock_counts() is now in six.c
bcachefs: "Snapshot deletion did not run correctly" should be a fsck err
bcachefs: Tracepoint improvements
bcachefs: Kill BTREE_ITER_CACHED_(NOFILL|NOCREATE)
bcachefs: Fix duplicate paths left by bch2_path_put()
bcachefs: Fix btree_path->uptodate inconsistency
bcachefs: Switch bch2_btree_delete_range() to bch2_trans_run()
bcachefs: Rename lock_held_stats -> btree_transaction_stats
bcachefs: Track the maximum btree_paths ever allocated by each transaction
bcachefs: Print last line in debugfs/btree_transaction_stats
bcachefs: Fix assertion in bch2_btree_key_cache_drop()
bcachefs: Increment restart count in bch2_trans_begin()
bcachefs: Fix bch2_fs_check_snapshots()
bcachefs: Debugfs cleanup
bcachefs: Add an overflow check in set_bkey_val_u64s()
bcachefs: Always rebuild aux search trees when node boundaries change
bcachefs: btree_path_down() optimization
bcachefs: Add assertions for unexpected transaction restarts
bcachefs: bch2_bkey_packed_to_binary_text()
bcachefs: Another should_be_locked fixup
bcachefs: Fix bch2_btree_iter_peek_slot() error path
bcachefs: Minor transaction restart handling fix
bcachefs: bch2_btree_delete_range_trans() now returns -BCH_ERR_transaction_restart_nested
bcachefs: fsck: Another transaction restart handling fix
bcachefs: Fix adding a device with a label
bcachefs: btree_locking.c
bcachefs: Reorganize btree_locking.[ch]
bcachefs: Better use of locking helpers
bcachefs: Kill nodes_intent_locked
six locks: Improve six_lock_count
bcachefs: Track maximum transaction memory
bcachefs: Switch btree locking code to struct btree_bkey_cached_common
bcachefs: Print lock counts in debugs btree_transactions
bcachefs: Track held write locks
bcachefs: Correctly initialize bkey_cached->lock
bcachefs: Make more btree_paths available
bcachefs: Improve btree_node_relock_fail tracepoint
bcachefs: Improve trans_restart_journal_preres_get tracepoint
bcachefs: Improve bch2_btree_node_relock()
bcachefs: Fix bch2_btree_update_start() to return -BCH_ERR_journal_reclaim_would_deadlock
bcachefs: Add persistent counters for all tracepoints
six locks: Delete six_lock_pcpu_free_rcu()
bcachefs: Don't leak lock pcpu counts memory
bcachefs: Delete time_stats for lock contended times
bcachefs: Mark write locks before taking lock
bcachefs: New locking functions
bcachefs: bch2_btree_node_lock_write_nofail()
bcachefs: Fix six_lock_readers_add()
bcachefs: btree_bkey_cached_common->cached
bcachefs: Convert more locking code to btree_bkey_cached_common
bcachefs: Refactor bkey_cached_alloc() path
bcachefs: Fix usage of six lock's percpu mode, key cache version
bcachefs: Avoid using btree_node_lock_nopath()
bcachefs: Ensure intent locks are marked before taking write locks
bcachefs: Fix redundant transaction restart
bcachefs: Kill journal_keys->journal_seq_base
bcachefs: Re-enable hash_redo_key()
bcachefs: Fix sb_field_counters formatting
bcachefs: Add a manual trigger for lock wakeups
bcachefs: bch2_btree_path_upgrade() now emits transaction restart
bcachefs: All held locks must be in a btree path
bcachefs: Make an assertion more informative
bcachefs: Errcodes can now subtype standard error codes
bcachefs: Add private error codes for ENOSPC
six locks: Simplify wait lists
six locks: six_lock_waiter()
six locks: Add start_time to six_lock_waiter
six locks: Enable lockdep
six locks: Fix a lost wakeup
six locks: Wakeup now takes lock on behalf of waiter
bcachefs: Add a debug assert
bcachefs: Fix bch2_btree_node_upgrade()
bcachefs: Deadlock cycle detector
bcachefs: Print deadlock cycle in debugfs
bcachefs: Delete old deadlock avoidance code
bcachefs: Ensure bch2_btree_node_lock_write_nofail() never fails
bcachefs: Kill normalize_read_intent_locks()
bcachefs: Improve bch2_btree_trans_to_text()
bcachefs: Fix error handling in bch2_btree_update_start()
bcachefs: btree_update_nodes_written() needs BTREE_INSERT_USE_RESERVE
bcachefs: Fix blocking with locks held
bcachefs: bch2_btree_cache_scan() improvement
bcachefs: bch2_btree_node_relock_notrace()
bcachefs: bch2_print_string_as_lines()
bcachefs: Improve bch2_fsck_err()
bcachefs: btree_err() now uses bch2_print_string_as_lines()
bcachefs: Run bch2_fs_counters_init() earlier
bcachefs: Inline bch2_trans_kmalloc() fast path
bcachefs: Optimize btree_path_alloc()
bcachefs: Improve jset_validate()
bcachefs: Inline fast path of check_pos_snapshot_overwritten()
bcachefs; Mark __bch2_trans_iter_init as inline
bcachefs: Improve bucket_alloc tracepoint
bcachefs: Kill io_in_flight semaphore
bcachefs: Break out bch2_btree_path_traverse_cached_slowpath()
bcachefs: Factor out bch2_write_drop_io_error_ptrs()
bcachefs: Fix bch2_btree_path_up_until_good_node()
bcachefs: bucket_alloc_state
bcachefs: Fix a trans path overflow in bch2_btree_delete_range_trans()
bcachefs: Don't quash error in bch2_bucket_alloc_set_trans()
bcachefs: Improve btree_deadlock debugfs output
bcachefs: bch2_trans_locked()
bcachefs: Fix a deadlock in btree_update_nodes_written()
bcachefs: Ensure fsck error is printed before panic
bcachefs: Fix "multiple types of data in same bucket" with ec
bcachefs: Use btree_type_has_ptrs() more consistently
bcachefs: Ratelimit ec error message
bcachefs: Handle dropping pointers in data_update path
bcachefs: Print cycle on unrecoverable deadlock
bcachefs: Simplify break_cycle()
bcachefs: Write new btree nodes after parent update
bcachefs: Add error path to btree_split()
bcachefs: bch2_btree_insert_node() no longer uses lock_write_nofail
bcachefs: bch2_btree_iter_peek() now works with interior nodes
bcachefs: Btree splits now only take the locks they need
bcachefs: Fix cached data accounting
bcachefs: bch2_path_put_nokeep()
bcachefs: Fix a rare path in bch2_btree_path_peek_slot()
bcachefs: Reflink now respects quotas
bcachefs: Call bch2_btree_update_add_new_node() before dropping write lock
bcachefs: Initialize sb_quota with default 1 week timer
bcachefs: Don't allow hardlinks when inherited attrs would change
bcachefs: Support FS_XFLAG_PROJINHERIT
bcachefs: Fix lock_graph_remove_non_waiters()
fixup bcachefs: Deadlock cycle detector
fixup bcachefs: Deadlock cycle detector
bcachefs: Fix bch2_write_begin()
bcachefs: Fix for not dropping privs in fallocate
bcachefs: Improve journal_entry_add()
bcachefs: Defer full journal entry validation
bcachefs: bch2_btree_key_cache_scan() doesn't need trylock
bcachefs: Fix btree node prefetchig
bcachefs: Btree key cache improvements
bcachefs: Switch to local_clock() for fastpath time source
bcachefs: Quota fixes
bcachefs: Btree key cache shrinker fix
bcachefs: Split out __btree_path_up_until_good_node()
bcachefs: Optimize bch2_trans_init()
bcachefs: bucket_alloc_fail tracepoint should only fire when we have to block
bcachefs: Inline bch2_inode_pack()
bcachefs: Optimize __bkey_unpack_key_format_checked()
bcachefs: Separate out flush_new_cached_update()
bcachefs: Don't issue transaction restart on key cache realloc
bcachefs: Optimize bch2_dev_usage_read()
bcachefs: Assorted checkpatch fixes
bcachefs: Don't touch c->flags in bch2_trans_iter_init()
bcachefs: Optimize __bch2_btree_node_iter_advance()
bcachefs: Move bkey bkey_unpack_key() to bkey.h
bcachefs: bch2_bkey_cmp_packed_inlined()
bcachefs: Convert to __packed and __aligned
bcachefs: Make error messages more uniform
bcachefs: Fix an out-of-bounds shift
bcachefs: Journal keys overlay fixes
bcachefs: Fix buffered write path for generic/275
bcachefs: Fix a spurious warning
bcachefs: Improve fs_usage_apply_warn() message
bcachefs: Improved btree write statistics
bcachefs: should_compact_all()
bcachefs: Kill BCH_WRITE_JOURNAL_SEQ_PTR
bcachefs: More style fixes
bcachefs: BCH_WRITE_SYNC
bcachefs: DIO write path optimization
bcachefs: Inlining improvements
bcachefs: Improve __bch2_btree_path_make_mut()
bcachefs: Kill bch2_alloc_sectors_start()
bcachefs: bch2_trans_commit_bkey_invalid()
bcachefs: Kill BCH_WRITE_FLUSH
bcachefs: Factor out two_state_shared_lock
bcachefs: Fixes for building in userspace
bcachefs: Delete atomic_inc_bug()
bcachefs: Fix a use after free
bcachefs: Quota: Don't allocate memory under lock
bcachefs: Minor dio write path improvements
bcachefs: Fix return code from btree_path_traverse_one()
bcachefs: Btree split improvement
bcachefs: Fix for_each_btree_key2()
bcachefs: Improve a few warnings
bcachefs: Error message improvement
bcachefs: Fix a race with b->write_type
bcachefs: Fix a transaction path overflow
bcachefs: Improve journal_read() logging
bcachefs: Handle last journal write being torn
bcachefs: Split out __bch2_btree_node_get()
bcachefs: Move some asserts behind CONFIG_BCACHEFS_DEBUG
bcachefs: Tiny bch2_trans_update_by_path_trace() optimization
bcachefs: Inline bch2_bkey_format_add_key()
bcachefs: Better inlining in bch2_subvolume_get_snapshot()
bcachefs: Improve bch2_inode_opts_to_opts()
bcachefs: Kill some unneeded references to c->flags
bcachefs: More dio inlining
bcachefs: Optimize bch2_trans_iter_init()
bcachefs: Better inlining in bch2_time_stats_update()
bcachefs: Kill BCH_FEATURE_incompressible
bcachefs: Fix an include
bcachefs: Don't set accessed bit on btree node fill
bcachefs: Fix BCH_IOCTL_DISK_SET_STATE
bcachefs: extents no longer require special handling for packing
bcachefs: New magic number
bcachefs: New bpos_cmp(), bkey_cmp() replacements
bcachefs: Fix __btree_trans_peek_key_cache()
bcachefs: bch2_btree_path_peek_slot_exact()
bcachefs: Kill __btree_trans_peek_key_cache()
bcachefs: Bring back BTREE_ITER_CACHED_NOFILL
bcachefs: Key cache now works for snapshots btrees
bcachefs: Fix a livelock in key cache fill path
bcachefs: Don't error out when just reading the journal
bcachefs: Fix a "no journal entries found" bug
bcachefs: Simplify journal read path
bcachefs: Fix a btree iter assertion pop
bcachefs: Kill btree_insert_ret enum
bcachefs: Fix bch2_journal_keys_peek_upto()
bcachefs: Add a missing bch2_btree_path_traverse() call
bcachefs: Suppress -EROFS messages when shutting down
bcachefs: More errcode cleanup
bcachefs: bkey_min(), bkey_max()
bcachefs: bch2_trans_revalidate_updates_in_node()
bcachefs: Fix error path in bch2_trans_commit_write_locked()
bcachefs: Fix btree_gc when multiple passes required
bcachefs: Recover from blacklisted journal entries
bcachefs: Allow for more btrees
bcachefs: New btree helpers
bcachefs: Add some unlikely() annotations
bcachefs: Add a missing bch2_err_str() call
bcachefs: Fix for long running btree transactions & key cache
bcachefs: Fix bch2_journal_flush_device_pins()
bcachefs: Be less restrictive when validating journal overwrite entries
bcachefs: Fix some memcpy() warnings
bcachefs: bch2_btree_trans_to_text(): print blocked time
bcachefs: Log more messages in the journal
bcachefs: Make log message at startup a bit cleaner
bcachefs: fix fsck error
bcachefs: Convert btree_err() to a function
bcachefs: Plumb saw_error through to btree_err()
bcachefs: Kill bch2_extent_trim_atomic() usage
bcachefs: Delete a faulty assertion
bcachefs: Fix bch2_btree_path_traverse_all()
bcachefs: Improve bkey_cached_lock_for_evict()
bcachefs: key cache: Don't hold btree locks while using GFP_RECLAIM
bcachefs: btree_iter->ip_allocated
bcachefs: bch2_trans_relock_notrace()
bcachefs: Fix compat path for old inode formats
bcachefs: Convert EROFS errors to private error codes
bcachefs: Convert EAGAIN errors to private error codes
bcachefs: debug: Fix some locking bugs
bcachefs: Kill fs_usage_apply_warn()
bcachefs: Dump transaction updates before panicing
bcachefs: Fix repair path in bch2_mark_reflink_p()
bcachefs: Fix rereplicate when we already have a cached pointer
bcachefs: Check for lru entries with time=0
bcachefs: Fix bch2_bucket_alloc_early()
bcachefs: Improve btree_reserve_get_fail tracepoint
bcachefs: Better inlining for bch2_alloc_to_v4_mut
bcachefs: Better inlining in core write path
bcachefs: Fix bch_alloc_to_text()
bcachefs: bch2_inode_opts_get()
bcachefs: Use trylock in bch2_prt_backtrace()
bcachefs: Don't emit tracepoints for expected events
bcachefs: Fix hash_check_key()
bcachefs: Inline bch2_btree_path_traverse() fastpath
bcachefs: Fix bch2_trans_reset_updates()
bcachefs: Improve btree node read error path
bcachefs: bch2_trans_in_restart_error()
six locks: Expose tracepoint IP
bcachefs: Use six_lock_ip()
six locks: Improved optimistic spinning
bcachefs: Don't call bch2_journal_pin_drop() under key cache lock
bcachefs: Use for_each_btree_key_upto() more consistently
bcachefs: Fix btree_path_alloc()
bcachefs: Switch a BUG_ON() to a panic()
bcachefs: Fix btree_node_write_blocked() not being cleared
bcachefs: ec_stripe_delete_work() now takes ref on c->writes
bcachefs: Debug mode for c->writes references
bcachefs: trans->notrace_relock_fail
bcachefs: Kill trans->flags
bcachefs: Start copygc when first going read-write
bcachefs: Go RW before check_alloc_info()
bcachefs: Btree write buffer
bcachefs: New on disk format: Backpointers
bcachefs: Copygc now uses backpointers
bcachefs: Erasure coding now uses backpointers
bcachefs: Delete in memory ec backpointers
bcachefs: Don't stop copygc while removing devices
bcachefs: Run bch2_check_backpointers_to_extents() in multiple passes if necessary
bcachefs: Run check_extents_to_backpointers() in multiple passes
bcachefs: Don't use key cache during fsck
fixup bcachefs: New on disk format: Backpointers
bcachefs: Improve bch2_dev_freespace_init()
bcachefs: Improve bch2_check_alloc_info()
bcachefs: Start snapshots before bch2_gc()
bcachefs: KEY_TYPE_inode_v3, metadata_version_inode_v3
bcachefs: Drop old maybe_extending optimization
bcachefs: Skip inode unpack/pack in bch2_extent_update()
bcachefs: bch2_extent_fallocate()
bcachefs: bch2_extent_update_i_size_sectors()
bcachefs: Unwritten extents support
bcachefs: Data update support for unwritten extents
bcachefs: Nocow support
bcachefs: Inline bch2_two_state_(trylock|unlock)
bcachefs: bucket_gens btree
bcachefs: Improved nocow locking
bcachefs: Rework lru btree
bcachefs: Change bkey_invalid() rw param to flags
bcachefs: BKEY_INVALID_FROM_JOURNAL
bcachefs: Fix deadlock on nocow locks in data move path
bcachefs: Fix move_ctxt_wait_event()
bcachefs: Improve invalidate_one_bucket() error messages
bcachefs: Fix promote path leak
bcachefs: Add an assert to bch2_bucket_nocow_unlock()
bcachefs: Add max nr of IOs in flight to the move path
bcachefs: Ensure btree node cache is not more than half dirty
bcachefs: Add some logging for btree node rewrites due to errors
bcachefs: Nocow locking fixup
bcachefs: Handle btree node rewrites before going RW
bcachefs: Add missing include
bcachefs: More info on check_bucket_ref() error
bcachefs: Improve locking in __bch2_set_nr_journal_buckets()
bcachefs: Fix failure to read btree roots
bcachefs: Handle sb buffer resizing in __copy_super()
bcachefs: Fix verify_bucket_evacuated()
bcachefs: New backtrace utility code
bcachefs: Fix verify_update_old_key()
six locks: Simplify six_lock_counts()
bcachefs: Fix a 64 bit divide
bcachefs: bch2_btree_insert_nonextent()
bcachefs: Don't print out duplicate fsck errors
bcachefs: Snapshot whiteout fix
bcachefs: bch2_mark_snapshot() now called like other triggers
bcachefs: Fix insert_snapshot_whiteouts()
bcachefs: Fix integer overflow warnings on 32 bit
bcachefs: Use btree write buffer for LRU btree
bcachefs: Fragmentation LRU
bcachefs: Don't invalidate open buckets
bcachefs: Erasure coding now uses bch2_bucket_alloc_trans
bcachefs: Add an assertion for using multiple btree_trans
bcachefs: Don't block on ec_stripe_head_lock with btree locks held
bcachefs: Fix erasure coding locking
bcachefs: Split trans->last_begin_ip and trans->last_restarted_ip
bcachefs: Switch ec_stripes_heap_lock to a mutex
bcachefs: Improve c->writes refcounting for stripe create path
bcachefs: Stripe deletion now checks what it's deleting
bcachefs: Erasure coding: Track open stripes
bcachefs: Simplify ec stripes heap
bcachefs: Fix ec repair code check
bcachefs: bch2_journal_entries_postprocess()
bcachefs: Improve a verbose log message
bcachefs: __bch2_btree_insert uses BTREE_INSERT_CACHED
bcachefs: Add tracepoint & counter for btree split race
bcachefs: Kill bch2_keylist_add_in_order()
bcachefs: Cached pointers should not be erasure coded
bcachefs: Check for redundant ec entries/stripe ptrs
bcachefs: Fix buffer overrun in ec_stripe_update_extent()
bcachefs: Fix erasure coding shutdown path
bcachefs: get_stripe_key_trans()
bcachefs: Don't call bch2_trans_update() unlocked
bcachefs: Make bucket_alloc tracepoint more readable
bcachefs: Add option for completely disabling nocow
bcachefs: Improve bch2_stripe_to_text()
bcachefs: Single open_bucket_partial list
bcachefs: Fix for shared paths in write buffer flush
bcachefs: Flush write buffer as needed in backpointers repair
bcachefs: bch2_data_update_index_update() -> bch2_trans_run()
bcachefs: ec: zero_out_rest_of_ec_bucket()
bcachefs: bch2_btree_iter_peek_and_restart_outlined()
bcachefs: Convert constants to consts
bcachefs: ec: Ensure new stripe is closed in error path
bcachefs: bch2_data_update_init() considers ptr durability
bcachefs: bch2_open_bucket_to_text()
bcachefs: ec: Improve error message for btree node in stripe
bcachefs: bch2_write_queue()
bcachefs: bch2_mark_key() now takes btree_id & level
bcachefs: bch2_copygc_wait_to_text()
bcachefs: Improve dev_alloc_debug_to_text()
bcachefs: Plumb btree_trans through btree cache code
bcachefs: Centralize btree node lock initialization
bcachefs: Mark stripe buckets with correct data type
bcachefs: Plumb alloc_reserve through stripe create path
bcachefs: More stripe create cleanup/fixes
bcachefs: Improve error message for stripe block sector counts wrong
bcachefs: RESERVE_stripe
bcachefs: moving_context->stats is allowed to be NULL
bcachefs: BKEY_PADDED_ONSTACK()
bcachefs: Drop some anonymous structs, unions
bcachefs: Fix stripe reuse path
bcachefs: Free move buffers as early as possible
bcachefs: Improved copygc pipelining
bcachefs: Improve bch2_new_stripes_to_text()
bcachefs: Kill bch2_ec_bucket_written()
bcachefs: Fix "btree node in stripe" error
bcachefs: bch2_btree_node_to_text() const correctness
bcachefs: bch2_btree_node_ondisk_to_text()
bcachefs: bch2_btree_iter_peek_node_and_restart()
bcachefs: Journal resize fixes
six locks: be more careful about lost wakeups
fixup bcachefs: Use for_each_btree_key_upto() more consistently
bcachefs: Verbose on by default when CONFIG_BCACHEFS_DEBUG=y
bcachefs: When shutting down, flush btree node writes last
bcachefs: Rework open bucket partial list allocation
bcachefs: Suppress transaction restart err message
bcachefs: evacuate_bucket() no longer calls verify_bucket_evacuated()
bcachefs: evacuate_bucket() no longer moves cached ptrs
bcachefs: Extent helper improvements
bcachefs: Rework __bch2_data_update_index_update()
bcachefs: ec: fall back to creating new stripes for copygc
bcachefs: Second layer of refcounting for new stripes
bcachefs: Fix next_bucket()
bcachefs: Simplify stripe_idx_to_delete
bcachefs: Kill bch_write_op->btree_update_ready
bcachefs: Improve bch2_new_stripes_to_text()
bcachefs: Mark new snapshots earlier in create path
bcachefs: Fix stripe create error path
bcachefs: Don't use BTREE_ITER_INTENT in make_extent_indirect()
bcachefs: bch2_bucket_is_movable() -> BTREE_ITER_CACHED
bcachefs: Fix an assert in copygc thread shutdown path
bcachefs: Fix bch2_check_extents_to_backpointers()
bcachefs: Private error codes: ENOMEM
bcachefs: bch2_fs_moving_ctxts_to_text()
bcachefs: New erasure coding shutdown path
bcachefs: Add error message for failing to allocate sorted journal keys
bcachefs: Improve the backpointer to missing extent message
bcachefs: Add a fallback when journal_keys doesn't fit in ram
bcachefs: Don't run transaction hooks multiple times
bcachefs: Fix for 'missing subvolume' error
bcachefs: Improve error handling in bch2_ioctl_subvolume_destroy()
bcachefs: Fix bch2_evict_subvolume_inodes()
bcachefs: Add an assert in inode_write for -ENOENT
bcachefs: Fix bch2_extent_fallocate() in nocow mode
bcachefs: Nocow write error path fix
bcachefs: Fix nocow write path closure bug
bcachefs: Fix an unhandled transaction restart error
bcachefs: Make reconstruct_alloc quieter
bcachefs: verify_bucket_evacuated() -> set_btree_iter_dontneed()
bcachefs: Fix bch2_verify_bucket_evacuated()
bcachefs: Call bch2_path_put_nokeep() before bch2_path_put()
bcachefs: Improved copygc wait debugging
bcachefs: Run freespace init in device hot add path
bcachefs: bch2_dev_freespace_init() Print out status every 10 seconds
bcachefs: Check return code from need_whiteout_for_snapshot()
bcachefs: Fix bch2_get_key_or_hole()
bcachefs: move snapshot_t to subvolume_types.h
bcachefs: Use BTREE_ITER_INTENT in ec_stripe_update_extent()
bcachefs: Rhashtable based buckets_in_flight for copygc
bcachefs: Data update path no longer leaves cached replicas
bcachefs: Improve trans_restart_split_race tracepoint
bcachefs: Rip out code for storing backpointers in alloc keys
bcachefs: Add missing bch2_err_class() call
bcachefs: Print out counters correctly
bcachefs: Improve trace_move_extent_fail()
bcachefs: Add a cond_resched() call to journal_keys_sort()
bcachefs: Add a bch_page_state assert
bcachefs: Rename bch_page_state -> bch_folio
bcachefs: Initial folio conversion
bcachefs: bio_for_each_segment_all() -> bio_for_each_folio_all()
bcachefs: bch2_seek_pagecache_hole() folio conversion
bcachefs: bch2_seek_pagecache_data() folio conversion
bcachefs: More assorted large folio conversion
bcachefs: bch_folio can now handle multi-order folios
bcachefs: bch2_buffered_write large folio conversion
bcachefs: bch2_truncate_page() large folio conversion
bcachefs: bch_folio_sector_state improvements
bcachefs: filemap_get_contig_folios_d()
bcachefs: bch2_readahead() large folio conversion
bcachefs: Check for folios that don't have bch_folio attached
bcachefs: Enable large folios
bcachefs: Allow answering y or n to all fsck errors of given type
bcachefs: Fix a slab-out-of-bounds
bcachefs: Fix a null ptr deref in fsck check_extents()
bcachefs: Drop a redundant error message
bcachefs: Improve move path tracepoints
bcachefs: Kill bch2_verify_bucket_evacuated()
bcachefs: Make sure hash info gets initialized in fsck
bcachefs: Fix a userspace build error
bcachefs: Always run topology error when CONFIG_BCACHEFS_DEBUG=y
bcachefs: Delete obsolete btree ptr check
bcachefs: Mark bch2_copygc() noinline
bcachefs: Btree iterator, update flags no longer conflict
bcachefs: Converting to typed bkeys is now allowed for err, null ptrs
bcachefs: bkey_ops.min_val_size
bcachefs: bch2_bkey_get_iter() helpers
bcachefs: Move bch2_bkey_make_mut() to btree_update.h
bcachefs: bch2_bkey_get_mut() improvements
bcachefs: bch2_bkey_alloc() now calls bch2_trans_update()
bcachefs: bch2_bkey_get_mut() now calls bch2_trans_update()
bcachefs: bch2_bkey_make_mut() now calls bch2_trans_update()
bcachefs: bch2_bkey_get_empty_slot()
bcachefs: BTREE_ID_snapshot_tree
bcachefs: Add otime, parent to bch_subvolume
bcachefs: Fix quotas + snapshots
bcachefs: Improved comment for bch2_replicas_gc2()
bcachefs: Delete some dead code in bch2_replicas_gc_end()
bcachefs: Replace a BUG_ON() with fatal error
bcachefs: Fix check_overlapping_extents()
bcachefs: Use memcpy_u64s_small() for copying keys
bcachefs: Delete an incorrect bch2_trans_unlock()
bcachefs: alloc_v4_u64s() fix
bcachefs: Clear btree_node_just_written() when node reused or evicted
bcachefs: Fix a buffer overrun in bch2_fs_usage_read()
bcachefs: Don't call local_clock() twice in trans_begin()
six locks: six_lock_readers_add()
six locks: Kill six_lock_pcpu_(alloc|free)
six locks: Remove hacks for percpu mode lost wakeup
six locks: Centralize setting of waiting bit
six locks: Simplify dispatch
six locks: Kill six_lock_state union
six locks: Documentation, renaming
six locks: Improve spurious wakeup handling in pcpu reader mode
six locks: Simplify six_relock()
six locks: lock->state.seq no longer used for write lock held
six_locks: Kill test_bit()/set_bit() usage
six locks: Single instance of six_lock_vals
six locks: Split out seq, use atomic_t instead of atomic64_t
six locks: Seq now only incremented on unlock
six locks: Tiny bit more tidying
six locks: Delete redundant comment
six locks: Fix an unitialized var
six locks: Use atomic_try_cmpxchg_acquire()
six locks: Disable percpu read lock mode in userspace
mean and variance: More tests
mean and variance: Add a missing include
bcachefs: Don't reuse reflink btree keyspace
bcachefs: Fix move_extent_fail counter
bcachefs: Fix a quota read bug
bcachefs: trans_for_each_path_safe()
bcachefs: Convert -ENOENT to private error codes
bcachefs: Fix corruption with writeable snapshots
bcachefs: Avoid __GFP_NOFAIL
bcachefs: Ensure bch2_btree_node_get() calls relock() after unlock()
bcachefs: GFP_NOIO -> GFP_NOFS
bcachefs: drop_locks_do()
bcachefs: bch2_trans_kmalloc no longer allocates memory with btree locks held
bcachefs: fs-io: Eliminate GFP_NOFS usage
bcachefs: Fix error handling in promote path
bcachefs: Use unlikely() in bch2_err_matches()
bcachefs: allocate_dropping_locks()
bcachefs: Convert acl.c to allocate_dropping_locks()
bcachefs: replicas_deltas_realloc() uses allocate_dropping_locks()
bcachefs: Fix bch2_fsck_ask_yn()
bcachefs: Delete warning from promote_alloc()
bcachefs: More drop_locks_do() conversions
bcachefs: Improve backpointers error message
bcachefs: Clean up tests code
bcachefs: Fix subvol deletion deadlock
bcachefs: ec: Fix a lost wakeup
bcachefs: New assertions when marking filesystem clean
bcachefs: Write buffer flush needs BTREE_INSERT_NOCHECK_RW
bcachefs: Delete weird hacky transaction restart injection
bcachefs: Fix try_decrease_writepoints()
bcachefs: snapshot_to_text() includes snapshot tree
bcachefs: bch2_extent_ptr_desired_durability()
bcachefs: Fix bch2_btree_update_start()
bcachefs: bch2_trans_unlock_noassert()
bcachefs: Fix bch2_check_discard_freespace_key()
bcachefs: Don't call lock_graph_descend() with wait lock held
bcachefs: seqmutex; fix a lockdep splat
bcachefs: fiemap: Fix a lockdep splat
bcachefs: New error message helpers
bcachefs: Check for ERR_PTR() from filemap_lock_folio()
bcachefs: Fix lockdep splat in bch2_readdir
bcachefs: Fix more lockdep splats in debug.c
bcachefs: bch2_trans_mark_pointer() refactoring
bcachefs: BCH_ERR_fsck -> EINVAL
bcachefs: Rename enum alloc_reserve -> bch_watermark
bcachefs: Fix check_pos_snapshot_overwritten()
bcachefs: Improve error message for overlapping extents
bcachefs: fsck needs BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE
bcachefs: Reduce stack frame size of bch2_check_alloc_info()
bcachefs: Improve bch2_bkey_make_mut()
bcachefs: Add a missing rhashtable_destroy() call
bcachefs: unregister_shrinker() now safe on not-registered shrinker
bcachefs: Fix leak in backpointers fsck
bcachefs: fsck: Break walk_inode() up into multiple functions
bcachefs: Fix btree node write error message
bcachefs: Expand BTREE_NODE_ID
bcachefs: struct bch_extent_rebalance
bcachefs: BCH_WATERMARK_reclaim
bcachefs: Kill JOURNAL_WATERMARK
bcachefs: Fix a format string warning
bcachefs: Fix a null ptr deref in bch2_fs_alloc() error path
bcachefs: Kill BTREE_INSERT_USE_RESERVE
bcachefs: bch2_version_to_text()
bcachefs: bch2_version_compatible()
bcachefs: Allow for unknown btree IDs
bcachefs: Allow for unknown key types
bcachefs: Refactor bch_sb_field_ops handling
bcachefs: Assorted sparse fixes
bcachefs: Change check for invalid key types
bcachefs: Delete redundant log messages
bcachefs: Convert more -EROFS to private error codes
bcachefs: BCH_SB_VERSION_UPGRADE_COMPLETE()
bcachefs: version_upgrade is now an enum
bcachefs: Fix error path in bch2_journal_flush_device_pins()
bcachefs: Kill bch2_bucket_gens_read()
bcachefs: Stash journal replay params in bch_fs
bcachefs: Enumerate recovery passes
bcachefs: Mark as EXPERIMENTAL
bcachefs: Fix try_decrease_writepoints()
bcachefs: Kill bch2_xattr_get()
bcachefs: bch2_xattr_set() now updates ctime
bcachefs: Add new assertions for shutdown path
bcachefs: bcachefs_metadata_version_major_minor
bcachefs: Fix a write buffer flush deadlock
bcachefs: bch2_sb_maybe_downgrade(), bch2_sb_upgrade()
bcachefs: Version table now lists required recovery passes
bcachefs: Snapshot depth, skiplist fields
bcachefs: Fix build error on weird gcc
bcachefs: Don't start copygc until recovery is finished
bcachefs: Fallocate now checks page cache
bcachefs: Add buffered IO fallback for userspace
bcachefs: Add a race_fault() for write buffer slowpath
bcachefs: Convert snapshot table to RCU array
bcachefs: bch_opt_fn
bcachefs: fix_errors option is now a proper enum
bcachefs: bcachefs_format.h should be using __u64
bcachefs: Extent sb compression type fields to 8 bits
bcachefs: Compression levels
bcachefs: is_ancestor bitmap
bcachefs: Upgrade path fixes
bcachefs: Inline bch2_snapshot_is_ancestor() fast path
bcachefs: check_extents(): make sure to check i_sectors for last inode
bcachefs: fsck: inode_walker: last_pos, seen_this_pos
bcachefs: overlapping_extents_found()
bcachefs: Simplify check_extent()
bcachefs: fsck: walk_inode() now takes is_whiteout
bcachefs: check_extent() refactoring
bcachefs: check_extent(): don't use key_visible_in_snapshot()
bcachefs: Refactor overlapping extent checks
bcachefs: Improve key_visible_in_snapshot()
bcachefs: need_snapshot_cleanup shouldn't be a fsck error
bcachefs: Fix lookup_inode_for_snapshot()
bcachefs: Suppresss various error messages in no_data_io mode
bcachefs: Print version, options earlier in startup path
bcachefs: bch2_run_explicit_recovery_pass()
bcachefs: Make topology repair a normal recovery pass
bcachefs: fsck: delete dead code
bcachefs: move inode triggers to inode.c
bcachefs: bch2_btree_bit_mod()
bcachefs: Fix a null ptr deref in check_xattr()
bcachefs: Fix btree iter leak in __bch2_insert_snapshot_whiteouts()
bcachefs: Move some declarations to the correct header
bcachefs: Fix minor memory leak on invalid bkey
bcachefs: bch2_trans_update_extent_overwrite()
bcachefs: Consolidate btree id properties
bcachefs: Move fsck_inode_rm() to inode.c
bcachefs: Assorted fixes for clang
bcachefs: Handle weird opt string from sys_fsconfig()
bcachefs: recovery_types.h
bcachefs: In debug mode, run fsck again after fixing errors
bcachefs: Fix overlapping extent repair
bcachefs: Fix folio leak in folio_hole_offset()
bcachefs: bcachefs_metadata_version_deleted_inodes
bcachefs: bkey_format helper improvements
bcachefs: Fix shift by 64 in set_inc_field()
bcachefs: Print out required recovery passes on version upgrade
bcachefs: Log a message when running an explicit recovery pass
bcachefs: Ensure topology repair runs
bcachefs: Fix btree_err() macro
bcachefs: Convert btree_err_type to normal error codes
bcachefs: Fix for bch2_copygc() spuriously returning -EEXIST
bcachefs: Fix lock thrashing in __bchfs_fallocate()
bcachefs: Add logging to bch2_inode_peek() & related
bcachefs: kill EBUG_ON() redefinition in bkey.c
bcachefs: BCH_COMPAT_bformat_overflow_done no longer required
bcachefs: Improve journal_entry_err_msg()
bcachefs: Convert journal validation to bkey_invalid_flags
bcachefs: Fix for sb buffer being misaligned
bcachefs: Fix assorted checkpatch nits
bcachefs: Split up fs-io.[ch]
bcachefs: Split up btree_update_leaf.c
bcachefs: sb-members.c
bcachefs: Move bch_sb_field_crypt code to checksum.c
bcachefs: sb-clean.c
bcachefs: btree_journal_iter.c
bcachefs: Fix 'journal not marked as containing replicas'
bcachefs: Fix check_version_upgrade()
bcachefs: Improve bch2_write_points_to_text()
bcachefs: Check for directories in deleted inodes btree
bcachefs: six locks: Fix missing barrier on wait->lock_acquired
bcachefs: Add a comment for should_drop_open_bucket()
bcachefs: Fix lifetime in bch2_write_done(), add assertion
bcachefs: Don't open code closure_nr_remaining()
bcachefs: six locks: Guard against wakee exiting in __six_lock_wakeup()
bcachefs: Fix 'pointer to invalid device' check
bcachefs: Zero btree_paths on allocation
bcachefs: Fix bch2_extent_fallocate()
bcachefs: Fix bkey format calculation
bcachefs: Fix swallowing of data in buffered write path
bcachefs: stack_trace_save_tsk() depends on CONFIG_STACKTRACE
bcachefs: Split out snapshot.c
bcachefs: Fix divide by zero in rebalance_work()
bcachefs: Improve btree_path_relock_fail tracepoint
bcachefs: Delete a faulty assertion
bcachefs: Fix bch2_mount error path
bcachefs: move check_pos_snapshot_overwritten() to snapshot.c
bcachefs: Fix is_ancestor bitmap
bcachefs: Fix btree write buffer with snapshots btrees
bcachefs: Cleanup redundant snapshot nodes
bcachefs: bch2_propagate_key_to_snapshot_leaves()
bcachefs: Fix a double free on invalid bkey
bcachefs: Always check alloc data type
bcachefs: Put bkey invalid check in commit path in a more useful place
bcachefs: Improve bch2_moving_ctxt_to_text()
bcachefs: Kill stripe check in bch2_alloc_v4_invalid()
bcachefs: Fix snapshot_skiplist_good()
bcachefs: bch2_acl_to_text()
bcachefs: Array bounds fixes
bcachefs: Fix silent enum conversion error
bcachefs: Fix bch2_propagate_key_to_snapshot_leaves()
bcachefs: Fix bch_sb_handle type
bcachefs: Kill missing inode warnings in bch2_quota_read()
bcachefs: Convert more code to bch_err_msg()
bcachefs: Kill incorrect assertion
bcachefs: __bch2_btree_insert() -> bch2_btree_insert_trans()
bcachefs: bch2_trans_update_get_key_cache()
bcachefs: Break up io.c
bcachefs: New io_misc.c helpers
bcachefs: BTREE_ID_logged_ops
bcachefs: Log truncate operations
bcachefs: Log finsert/fcollapse operations
bcachefs: trace_read_nopromote()
bcachefs: Add a missing prefetch include
bcachefs: Fix W=12 build errors
bcachefs: Heap allocate btree_trans
bcachefs: Kill other unreachable() uses
bcachefs: Change bucket_lock() to use bit_spin_lock()
bcachefs: Fix copy_to_user() usage in flush_buf()
bcachefs: Fix an overflow check
bcachefs: Fix error checks in bch2_chacha_encrypt_key()
bcachefs: bch2_ioctl_disk_resize_journal(): check for integer truncation
bcachefs: drop journal lock before calling journal_write
bcachefs: Fix strndup_user() error checking
bcachefs: snapshots: Use kvfree_rcu_mightsleep()
bcachefs: Minor bch2_btree_node_get() smatch fixes
bcachefs: More minor smatch fixes
bcachefs: Fix a null ptr deref in bch2_get_alloc_in_memory_pos()
bcachefs: Make sure to initialize equiv when creating new snapshots
bcachefs: Always check for invalid bkeys in main commit path
bcachefs: Ignore unknown mount options
bcachefs: Fixes for building in userspace
bcachefs: nocow locking: Fix lock leak
bcachefs: More assertions for nocow locking
bcachefs: Silence transaction restart error message
bcachefs: bch_err_msg(), bch_err_fn() now filters out transaction restart errors
bcachefs: Fix looping around bch2_propagate_key_to_snapshot_leaves()
bcachefs: Fall back to requesting passphrase directly
bcachefs: Make btree root read errors recoverable
bcachefs: Fix bch2_inode_delete_keys()
bcachefs: bucket_lock() is now a sleepable lock
bcachefs: Use strsep() in split_devs()
bcachefs: Fix another smatch complaint
bcachefs: Correctly initialize new buckets on device resize
bcachefs: Switch to unsafe_memcpy() in a few places
bcachefs: Fix handling of unknown bkey types
bcachefs: KEY_TYPE_error now counts towards i_sectors
bcachefs: bch2_sb_field_get() refactoring
bcachefs: Fix snapshot skiplists during snapshot deletion
bcachefs: snapshot_create_lock
bcachefs: Fix drop_alloc_keys()
exportfs: Change bcachefs fid_type enum to avoid conflicts
Matthew Wilcox (Oracle) (2):
bcachefs: Remove page_state_init_for_read
bcachefs: Use attach_page_private and detach_page_private
Mikulas Patocka (2):
bcachefs: fix NULL pointer dereference in try_alloc_bucket
bcachefs: mark bch_inode_info and bkey_cached as reclaimable
Nathan Chancellor (7):
bcachefs: Fix -Wformat in bch2_set_bucket_needs_journal_commit()
bcachefs: Fix -Wformat in bch2_btree_key_cache_to_text()
bcachefs: Fix -Wformat in bch2_alloc_v4_invalid()
bcachefs: Fix -Wformat in bch2_bucket_gens_invalid()
bcachefs: Fix -Wincompatible-function-pointer-types-strict from key_invalid callbacks
bcachefs: Fix -Wcompare-distinct-pointer-types in do_encrypt()
bcachefs: Fix -Wcompare-distinct-pointer-types in bch2_copygc_get_buckets()
Nick Desaulniers (1):
bcachefs: Fix -Wself-assign
Olexa Bilaniuk (1):
bcachefs: remove dead whiteout_u64s argument.
Robbie Litchfield (1):
bcachefs: Fix unnecessary read amplificaiton when allocating ec stripes
Stijn Tintel (1):
bcachefs: avoid out-of-bounds in split_devs
Tim Schlueter (2):
bcachefs: Set the last mount time using the realtime clock
bcachefs: Fix bkey_method compilation on gcc 7.3.0
Tobias Geerinckx-Rice (1):
bcachefs: Enforce SYS_CAP_ADMIN within ioctls
Torge Matthies (1):
bcachefs: Fix changing durability using sysfs
Yang Li (1):
bcachefs: Remove unneeded semicolon
Yuxuan Shui (1):
bcachefs: fix stack corruption
jpsollie (2):
bcachefs: Prepare checksums for more advanced algorithms
bcachefs: add bcachefs xxhash support
MAINTAINERS | 23 +
drivers/md/bcache/Kconfig | 10 +-
drivers/md/bcache/Makefile | 4 +-
drivers/md/bcache/bcache.h | 2 +-
drivers/md/bcache/super.c | 1 -
drivers/md/bcache/util.h | 3 +-
fs/Kconfig | 1 +
fs/Makefile | 1 +
fs/bcachefs/Kconfig | 85 +
fs/bcachefs/Makefile | 88 +
fs/bcachefs/acl.c | 463 ++++
fs/bcachefs/acl.h | 60 +
fs/bcachefs/alloc_background.c | 2146 +++++++++++++++
fs/bcachefs/alloc_background.h | 258 ++
fs/bcachefs/alloc_foreground.c | 1576 +++++++++++
fs/bcachefs/alloc_foreground.h | 224 ++
fs/bcachefs/alloc_types.h | 126 +
fs/bcachefs/backpointers.c | 868 ++++++
fs/bcachefs/backpointers.h | 131 +
fs/bcachefs/bbpos.h | 48 +
fs/bcachefs/bcachefs.h | 1156 ++++++++
fs/bcachefs/bcachefs_format.h | 2413 +++++++++++++++++
fs/bcachefs/bcachefs_ioctl.h | 368 +++
fs/bcachefs/bkey.c | 1120 ++++++++
fs/bcachefs/bkey.h | 782 ++++++
fs/bcachefs/bkey_buf.h | 61 +
fs/bcachefs/bkey_cmp.h | 129 +
fs/bcachefs/bkey_methods.c | 458 ++++
fs/bcachefs/bkey_methods.h | 188 ++
fs/bcachefs/bkey_sort.c | 201 ++
fs/bcachefs/bkey_sort.h | 54 +
fs/bcachefs/bset.c | 1592 +++++++++++
fs/bcachefs/bset.h | 541 ++++
fs/bcachefs/btree_cache.c | 1202 +++++++++
fs/bcachefs/btree_cache.h | 130 +
fs/bcachefs/btree_gc.c | 2111 +++++++++++++++
fs/bcachefs/btree_gc.h | 114 +
fs/bcachefs/btree_io.c | 2223 ++++++++++++++++
fs/bcachefs/btree_io.h | 228 ++
fs/bcachefs/btree_iter.c | 3215 +++++++++++++++++++++++
fs/bcachefs/btree_iter.h | 939 +++++++
fs/bcachefs/btree_journal_iter.c | 531 ++++
fs/bcachefs/btree_journal_iter.h | 57 +
fs/bcachefs/btree_key_cache.c | 1072 ++++++++
fs/bcachefs/btree_key_cache.h | 48 +
fs/bcachefs/btree_locking.c | 791 ++++++
fs/bcachefs/btree_locking.h | 423 +++
fs/bcachefs/btree_trans_commit.c | 1150 ++++++++
fs/bcachefs/btree_types.h | 739 ++++++
fs/bcachefs/btree_update.c | 933 +++++++
fs/bcachefs/btree_update.h | 340 +++
fs/bcachefs/btree_update_interior.c | 2480 +++++++++++++++++
fs/bcachefs/btree_update_interior.h | 337 +++
fs/bcachefs/btree_write_buffer.c | 375 +++
fs/bcachefs/btree_write_buffer.h | 14 +
fs/bcachefs/btree_write_buffer_types.h | 44 +
fs/bcachefs/buckets.c | 2106 +++++++++++++++
fs/bcachefs/buckets.h | 443 ++++
fs/bcachefs/buckets_types.h | 92 +
fs/bcachefs/buckets_waiting_for_journal.c | 166 ++
fs/bcachefs/buckets_waiting_for_journal.h | 15 +
fs/bcachefs/buckets_waiting_for_journal_types.h | 23 +
fs/bcachefs/chardev.c | 784 ++++++
fs/bcachefs/chardev.h | 31 +
fs/bcachefs/checksum.c | 804 ++++++
fs/bcachefs/checksum.h | 213 ++
fs/bcachefs/clock.c | 193 ++
fs/bcachefs/clock.h | 38 +
fs/bcachefs/clock_types.h | 37 +
fs/bcachefs/compress.c | 710 +++++
fs/bcachefs/compress.h | 55 +
fs/bcachefs/counters.c | 107 +
fs/bcachefs/counters.h | 17 +
fs/bcachefs/darray.h | 87 +
fs/bcachefs/data_update.c | 558 ++++
fs/bcachefs/data_update.h | 43 +
fs/bcachefs/debug.c | 954 +++++++
fs/bcachefs/debug.h | 32 +
fs/bcachefs/dirent.c | 587 +++++
fs/bcachefs/dirent.h | 70 +
fs/bcachefs/disk_groups.c | 550 ++++
fs/bcachefs/disk_groups.h | 106 +
fs/bcachefs/ec.c | 1966 ++++++++++++++
fs/bcachefs/ec.h | 260 ++
fs/bcachefs/ec_types.h | 41 +
fs/bcachefs/errcode.c | 68 +
fs/bcachefs/errcode.h | 265 ++
fs/bcachefs/error.c | 293 +++
fs/bcachefs/error.h | 206 ++
fs/bcachefs/extent_update.c | 173 ++
fs/bcachefs/extent_update.h | 12 +
fs/bcachefs/extents.c | 1403 ++++++++++
fs/bcachefs/extents.h | 758 ++++++
fs/bcachefs/extents_types.h | 40 +
fs/bcachefs/eytzinger.h | 281 ++
fs/bcachefs/fifo.h | 127 +
fs/bcachefs/fs-common.c | 501 ++++
fs/bcachefs/fs-common.h | 43 +
fs/bcachefs/fs-io-buffered.c | 1093 ++++++++
fs/bcachefs/fs-io-buffered.h | 27 +
fs/bcachefs/fs-io-direct.c | 679 +++++
fs/bcachefs/fs-io-direct.h | 16 +
fs/bcachefs/fs-io-pagecache.c | 791 ++++++
fs/bcachefs/fs-io-pagecache.h | 176 ++
fs/bcachefs/fs-io.c | 1072 ++++++++
fs/bcachefs/fs-io.h | 184 ++
fs/bcachefs/fs-ioctl.c | 572 ++++
fs/bcachefs/fs-ioctl.h | 81 +
fs/bcachefs/fs.c | 1980 ++++++++++++++
fs/bcachefs/fs.h | 209 ++
fs/bcachefs/fsck.c | 2417 +++++++++++++++++
fs/bcachefs/fsck.h | 14 +
fs/bcachefs/inode.c | 1133 ++++++++
fs/bcachefs/inode.h | 207 ++
fs/bcachefs/io_misc.c | 515 ++++
fs/bcachefs/io_misc.h | 34 +
fs/bcachefs/io_read.c | 1210 +++++++++
fs/bcachefs/io_read.h | 158 ++
fs/bcachefs/io_write.c | 1671 ++++++++++++
fs/bcachefs/io_write.h | 110 +
fs/bcachefs/io_write_types.h | 96 +
fs/bcachefs/journal.c | 1449 ++++++++++
fs/bcachefs/journal.h | 548 ++++
fs/bcachefs/journal_io.c | 1894 +++++++++++++
fs/bcachefs/journal_io.h | 65 +
fs/bcachefs/journal_reclaim.c | 876 ++++++
fs/bcachefs/journal_reclaim.h | 87 +
fs/bcachefs/journal_sb.c | 219 ++
fs/bcachefs/journal_sb.h | 24 +
fs/bcachefs/journal_seq_blacklist.c | 320 +++
fs/bcachefs/journal_seq_blacklist.h | 22 +
fs/bcachefs/journal_types.h | 345 +++
fs/bcachefs/keylist.c | 52 +
fs/bcachefs/keylist.h | 74 +
fs/bcachefs/keylist_types.h | 16 +
fs/bcachefs/logged_ops.c | 112 +
fs/bcachefs/logged_ops.h | 20 +
fs/bcachefs/lru.c | 162 ++
fs/bcachefs/lru.h | 69 +
fs/bcachefs/mean_and_variance.c | 159 ++
fs/bcachefs/mean_and_variance.h | 198 ++
fs/bcachefs/mean_and_variance_test.c | 240 ++
fs/bcachefs/migrate.c | 179 ++
fs/bcachefs/migrate.h | 7 +
fs/bcachefs/move.c | 1159 ++++++++
fs/bcachefs/move.h | 96 +
fs/bcachefs/move_types.h | 36 +
fs/bcachefs/movinggc.c | 414 +++
fs/bcachefs/movinggc.h | 12 +
fs/bcachefs/nocow_locking.c | 144 +
fs/bcachefs/nocow_locking.h | 50 +
fs/bcachefs/nocow_locking_types.h | 20 +
fs/bcachefs/opts.c | 605 +++++
fs/bcachefs/opts.h | 564 ++++
fs/bcachefs/printbuf.c | 425 +++
fs/bcachefs/printbuf.h | 284 ++
fs/bcachefs/quota.c | 978 +++++++
fs/bcachefs/quota.h | 74 +
fs/bcachefs/quota_types.h | 43 +
fs/bcachefs/rebalance.c | 366 +++
fs/bcachefs/rebalance.h | 28 +
fs/bcachefs/rebalance_types.h | 26 +
fs/bcachefs/recovery.c | 1049 ++++++++
fs/bcachefs/recovery.h | 33 +
fs/bcachefs/recovery_types.h | 49 +
fs/bcachefs/reflink.c | 405 +++
fs/bcachefs/reflink.h | 81 +
fs/bcachefs/replicas.c | 1058 ++++++++
fs/bcachefs/replicas.h | 91 +
fs/bcachefs/replicas_types.h | 27 +
fs/bcachefs/sb-clean.c | 395 +++
fs/bcachefs/sb-clean.h | 16 +
fs/bcachefs/sb-members.c | 339 +++
fs/bcachefs/sb-members.h | 182 ++
fs/bcachefs/seqmutex.h | 48 +
fs/bcachefs/siphash.c | 173 ++
fs/bcachefs/siphash.h | 87 +
fs/bcachefs/six.c | 913 +++++++
fs/bcachefs/six.h | 393 +++
fs/bcachefs/snapshot.c | 1689 ++++++++++++
fs/bcachefs/snapshot.h | 270 ++
fs/bcachefs/str_hash.h | 370 +++
fs/bcachefs/subvolume.c | 450 ++++
fs/bcachefs/subvolume.h | 35 +
fs/bcachefs/subvolume_types.h | 31 +
fs/bcachefs/super-io.c | 1258 +++++++++
fs/bcachefs/super-io.h | 124 +
fs/bcachefs/super.c | 2022 ++++++++++++++
fs/bcachefs/super.h | 52 +
fs/bcachefs/super_types.h | 52 +
fs/bcachefs/sysfs.c | 1031 ++++++++
fs/bcachefs/sysfs.h | 48 +
fs/bcachefs/tests.c | 919 +++++++
fs/bcachefs/tests.h | 15 +
fs/bcachefs/trace.c | 16 +
fs/bcachefs/trace.h | 1284 +++++++++
fs/bcachefs/two_state_shared_lock.c | 8 +
fs/bcachefs/two_state_shared_lock.h | 59 +
fs/bcachefs/util.c | 1141 ++++++++
fs/bcachefs/util.h | 852 ++++++
fs/bcachefs/varint.c | 129 +
fs/bcachefs/varint.h | 11 +
fs/bcachefs/vstructs.h | 63 +
fs/bcachefs/xattr.c | 651 +++++
fs/bcachefs/xattr.h | 50 +
fs/dcache.c | 12 +-
{drivers/md/bcache => include/linux}/closure.h | 46 +-
include/linux/dcache.h | 1 +
include/linux/exportfs.h | 6 +
include/linux/generic-radix-tree.h | 68 +-
include/linux/sched.h | 1 +
include/linux/string_helpers.h | 4 +-
init/init_task.c | 1 +
kernel/locking/mutex.c | 3 +
kernel/stacktrace.c | 2 +
lib/Kconfig | 3 +
lib/Kconfig.debug | 9 +
lib/Makefile | 2 +
{drivers/md/bcache => lib}/closure.c | 36 +-
lib/errname.c | 1 +
lib/generic-radix-tree.c | 76 +-
lib/string_helpers.c | 10 +-
tools/objtool/noreturns.h | 2 +
223 files changed, 95037 insertions(+), 56 deletions(-)
create mode 100644 fs/bcachefs/Kconfig
create mode 100644 fs/bcachefs/Makefile
create mode 100644 fs/bcachefs/acl.c
create mode 100644 fs/bcachefs/acl.h
create mode 100644 fs/bcachefs/alloc_background.c
create mode 100644 fs/bcachefs/alloc_background.h
create mode 100644 fs/bcachefs/alloc_foreground.c
create mode 100644 fs/bcachefs/alloc_foreground.h
create mode 100644 fs/bcachefs/alloc_types.h
create mode 100644 fs/bcachefs/backpointers.c
create mode 100644 fs/bcachefs/backpointers.h
create mode 100644 fs/bcachefs/bbpos.h
create mode 100644 fs/bcachefs/bcachefs.h
create mode 100644 fs/bcachefs/bcachefs_format.h
create mode 100644 fs/bcachefs/bcachefs_ioctl.h
create mode 100644 fs/bcachefs/bkey.c
create mode 100644 fs/bcachefs/bkey.h
create mode 100644 fs/bcachefs/bkey_buf.h
create mode 100644 fs/bcachefs/bkey_cmp.h
create mode 100644 fs/bcachefs/bkey_methods.c
create mode 100644 fs/bcachefs/bkey_methods.h
create mode 100644 fs/bcachefs/bkey_sort.c
create mode 100644 fs/bcachefs/bkey_sort.h
create mode 100644 fs/bcachefs/bset.c
create mode 100644 fs/bcachefs/bset.h
create mode 100644 fs/bcachefs/btree_cache.c
create mode 100644 fs/bcachefs/btree_cache.h
create mode 100644 fs/bcachefs/btree_gc.c
create mode 100644 fs/bcachefs/btree_gc.h
create mode 100644 fs/bcachefs/btree_io.c
create mode 100644 fs/bcachefs/btree_io.h
create mode 100644 fs/bcachefs/btree_iter.c
create mode 100644 fs/bcachefs/btree_iter.h
create mode 100644 fs/bcachefs/btree_journal_iter.c
create mode 100644 fs/bcachefs/btree_journal_iter.h
create mode 100644 fs/bcachefs/btree_key_cache.c
create mode 100644 fs/bcachefs/btree_key_cache.h
create mode 100644 fs/bcachefs/btree_locking.c
create mode 100644 fs/bcachefs/btree_locking.h
create mode 100644 fs/bcachefs/btree_trans_commit.c
create mode 100644 fs/bcachefs/btree_types.h
create mode 100644 fs/bcachefs/btree_update.c
create mode 100644 fs/bcachefs/btree_update.h
create mode 100644 fs/bcachefs/btree_update_interior.c
create mode 100644 fs/bcachefs/btree_update_interior.h
create mode 100644 fs/bcachefs/btree_write_buffer.c
create mode 100644 fs/bcachefs/btree_write_buffer.h
create mode 100644 fs/bcachefs/btree_write_buffer_types.h
create mode 100644 fs/bcachefs/buckets.c
create mode 100644 fs/bcachefs/buckets.h
create mode 100644 fs/bcachefs/buckets_types.h
create mode 100644 fs/bcachefs/buckets_waiting_for_journal.c
create mode 100644 fs/bcachefs/buckets_waiting_for_journal.h
create mode 100644 fs/bcachefs/buckets_waiting_for_journal_types.h
create mode 100644 fs/bcachefs/chardev.c
create mode 100644 fs/bcachefs/chardev.h
create mode 100644 fs/bcachefs/checksum.c
create mode 100644 fs/bcachefs/checksum.h
create mode 100644 fs/bcachefs/clock.c
create mode 100644 fs/bcachefs/clock.h
create mode 100644 fs/bcachefs/clock_types.h
create mode 100644 fs/bcachefs/compress.c
create mode 100644 fs/bcachefs/compress.h
create mode 100644 fs/bcachefs/counters.c
create mode 100644 fs/bcachefs/counters.h
create mode 100644 fs/bcachefs/darray.h
create mode 100644 fs/bcachefs/data_update.c
create mode 100644 fs/bcachefs/data_update.h
create mode 100644 fs/bcachefs/debug.c
create mode 100644 fs/bcachefs/debug.h
create mode 100644 fs/bcachefs/dirent.c
create mode 100644 fs/bcachefs/dirent.h
create mode 100644 fs/bcachefs/disk_groups.c
create mode 100644 fs/bcachefs/disk_groups.h
create mode 100644 fs/bcachefs/ec.c
create mode 100644 fs/bcachefs/ec.h
create mode 100644 fs/bcachefs/ec_types.h
create mode 100644 fs/bcachefs/errcode.c
create mode 100644 fs/bcachefs/errcode.h
create mode 100644 fs/bcachefs/error.c
create mode 100644 fs/bcachefs/error.h
create mode 100644 fs/bcachefs/extent_update.c
create mode 100644 fs/bcachefs/extent_update.h
create mode 100644 fs/bcachefs/extents.c
create mode 100644 fs/bcachefs/extents.h
create mode 100644 fs/bcachefs/extents_types.h
create mode 100644 fs/bcachefs/eytzinger.h
create mode 100644 fs/bcachefs/fifo.h
create mode 100644 fs/bcachefs/fs-common.c
create mode 100644 fs/bcachefs/fs-common.h
create mode 100644 fs/bcachefs/fs-io-buffered.c
create mode 100644 fs/bcachefs/fs-io-buffered.h
create mode 100644 fs/bcachefs/fs-io-direct.c
create mode 100644 fs/bcachefs/fs-io-direct.h
create mode 100644 fs/bcachefs/fs-io-pagecache.c
create mode 100644 fs/bcachefs/fs-io-pagecache.h
create mode 100644 fs/bcachefs/fs-io.c
create mode 100644 fs/bcachefs/fs-io.h
create mode 100644 fs/bcachefs/fs-ioctl.c
create mode 100644 fs/bcachefs/fs-ioctl.h
create mode 100644 fs/bcachefs/fs.c
create mode 100644 fs/bcachefs/fs.h
create mode 100644 fs/bcachefs/fsck.c
create mode 100644 fs/bcachefs/fsck.h
create mode 100644 fs/bcachefs/inode.c
create mode 100644 fs/bcachefs/inode.h
create mode 100644 fs/bcachefs/io_misc.c
create mode 100644 fs/bcachefs/io_misc.h
create mode 100644 fs/bcachefs/io_read.c
create mode 100644 fs/bcachefs/io_read.h
create mode 100644 fs/bcachefs/io_write.c
create mode 100644 fs/bcachefs/io_write.h
create mode 100644 fs/bcachefs/io_write_types.h
create mode 100644 fs/bcachefs/journal.c
create mode 100644 fs/bcachefs/journal.h
create mode 100644 fs/bcachefs/journal_io.c
create mode 100644 fs/bcachefs/journal_io.h
create mode 100644 fs/bcachefs/journal_reclaim.c
create mode 100644 fs/bcachefs/journal_reclaim.h
create mode 100644 fs/bcachefs/journal_sb.c
create mode 100644 fs/bcachefs/journal_sb.h
create mode 100644 fs/bcachefs/journal_seq_blacklist.c
create mode 100644 fs/bcachefs/journal_seq_blacklist.h
create mode 100644 fs/bcachefs/journal_types.h
create mode 100644 fs/bcachefs/keylist.c
create mode 100644 fs/bcachefs/keylist.h
create mode 100644 fs/bcachefs/keylist_types.h
create mode 100644 fs/bcachefs/logged_ops.c
create mode 100644 fs/bcachefs/logged_ops.h
create mode 100644 fs/bcachefs/lru.c
create mode 100644 fs/bcachefs/lru.h
create mode 100644 fs/bcachefs/mean_and_variance.c
create mode 100644 fs/bcachefs/mean_and_variance.h
create mode 100644 fs/bcachefs/mean_and_variance_test.c
create mode 100644 fs/bcachefs/migrate.c
create mode 100644 fs/bcachefs/migrate.h
create mode 100644 fs/bcachefs/move.c
create mode 100644 fs/bcachefs/move.h
create mode 100644 fs/bcachefs/move_types.h
create mode 100644 fs/bcachefs/movinggc.c
create mode 100644 fs/bcachefs/movinggc.h
create mode 100644 fs/bcachefs/nocow_locking.c
create mode 100644 fs/bcachefs/nocow_locking.h
create mode 100644 fs/bcachefs/nocow_locking_types.h
create mode 100644 fs/bcachefs/opts.c
create mode 100644 fs/bcachefs/opts.h
create mode 100644 fs/bcachefs/printbuf.c
create mode 100644 fs/bcachefs/printbuf.h
create mode 100644 fs/bcachefs/quota.c
create mode 100644 fs/bcachefs/quota.h
create mode 100644 fs/bcachefs/quota_types.h
create mode 100644 fs/bcachefs/rebalance.c
create mode 100644 fs/bcachefs/rebalance.h
create mode 100644 fs/bcachefs/rebalance_types.h
create mode 100644 fs/bcachefs/recovery.c
create mode 100644 fs/bcachefs/recovery.h
create mode 100644 fs/bcachefs/recovery_types.h
create mode 100644 fs/bcachefs/reflink.c
create mode 100644 fs/bcachefs/reflink.h
create mode 100644 fs/bcachefs/replicas.c
create mode 100644 fs/bcachefs/replicas.h
create mode 100644 fs/bcachefs/replicas_types.h
create mode 100644 fs/bcachefs/sb-clean.c
create mode 100644 fs/bcachefs/sb-clean.h
create mode 100644 fs/bcachefs/sb-members.c
create mode 100644 fs/bcachefs/sb-members.h
create mode 100644 fs/bcachefs/seqmutex.h
create mode 100644 fs/bcachefs/siphash.c
create mode 100644 fs/bcachefs/siphash.h
create mode 100644 fs/bcachefs/six.c
create mode 100644 fs/bcachefs/six.h
create mode 100644 fs/bcachefs/snapshot.c
create mode 100644 fs/bcachefs/snapshot.h
create mode 100644 fs/bcachefs/str_hash.h
create mode 100644 fs/bcachefs/subvolume.c
create mode 100644 fs/bcachefs/subvolume.h
create mode 100644 fs/bcachefs/subvolume_types.h
create mode 100644 fs/bcachefs/super-io.c
create mode 100644 fs/bcachefs/super-io.h
create mode 100644 fs/bcachefs/super.c
create mode 100644 fs/bcachefs/super.h
create mode 100644 fs/bcachefs/super_types.h
create mode 100644 fs/bcachefs/sysfs.c
create mode 100644 fs/bcachefs/sysfs.h
create mode 100644 fs/bcachefs/tests.c
create mode 100644 fs/bcachefs/tests.h
create mode 100644 fs/bcachefs/trace.c
create mode 100644 fs/bcachefs/trace.h
create mode 100644 fs/bcachefs/two_state_shared_lock.c
create mode 100644 fs/bcachefs/two_state_shared_lock.h
create mode 100644 fs/bcachefs/util.c
create mode 100644 fs/bcachefs/util.h
create mode 100644 fs/bcachefs/varint.c
create mode 100644 fs/bcachefs/varint.h
create mode 100644 fs/bcachefs/vstructs.h
create mode 100644 fs/bcachefs/xattr.c
create mode 100644 fs/bcachefs/xattr.h
rename {drivers/md/bcache => include/linux}/closure.h (93%)
rename {drivers/md/bcache => lib}/closure.c (88%)
The pull request you sent on Mon, 30 Oct 2023 10:55:40 -0400:
> https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2023-10-30
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/9e87705289667a6c5185c619ea32f3d39314eb1b
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
Hi Kent,
On Mon, Oct 30, 2023 at 3:56 PM Kent Overstreet
<[email protected]> wrote:
> The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
>
> Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
>
> are available in the Git repository at:
>
> https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2023-10-30
>
> for you to fetch changes up to b827ac419721a106ae2fccaa40576b0594edad92:
>
> exportfs: Change bcachefs fid_type enum to avoid conflicts (2023-10-26 16:41:00 -0400)
>
> ----------------------------------------------------------------
> Initial bcachefs pull request for 6.7-rc1
>
> Here's the bcachefs filesystem pull request.
>
> One new patch since last week: the exportfs constants ended up
> conflicting with other filesystems that are also getting added to the
> global enum, so switched to new constants picked by Amir.
>
> I'll also be sending another pull request later on in the cycle bringing
> things up to date my master branch that people are currently running;
> that will be restricted to fs/bcachefs/, naturally.
>
> Testing - fstests as well as the bcachefs specific tests in ktest:
> https://evilpiepirate.org/~testdashboard/ci?branch=bcachefs-for-upstream
>
> It's also been soaking in linux-next, which resulted in a whole bunch of
> smatch complaints and fixes and a patch or two from Kees.
>
> The only new non fs/bcachefs/ patch is the objtool patch that adds
> bcachefs functions to the list of noreturns. The patch that exports
> osq_lock() has been dropped for now, per Ingo.
Thanks for your PR!
> fs/bcachefs/mean_and_variance.c | 159 ++
> fs/bcachefs/mean_and_variance.h | 198 ++
> fs/bcachefs/mean_and_variance_test.c | 240 ++
Looking into missing dependencies for MEAN_AND_VARIANCE_UNIT_TEST and
failing mean_and_variance tests, this does not seem to match what was
submitted for public review?
Lore only has:
"[PATCH 31/32] lib: add mean and variance module."
https://lore.kernel.org/all/[email protected]/
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Tue, Oct 31, 2023 at 01:47:02PM +0100, Geert Uytterhoeven wrote:
> Hi Kent,
>
> On Mon, Oct 30, 2023 at 3:56 PM Kent Overstreet
> <[email protected]> wrote:
> > The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
> >
> > Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
> >
> > are available in the Git repository at:
> >
> > https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2023-10-30
> >
> > for you to fetch changes up to b827ac419721a106ae2fccaa40576b0594edad92:
> >
> > exportfs: Change bcachefs fid_type enum to avoid conflicts (2023-10-26 16:41:00 -0400)
> >
> > ----------------------------------------------------------------
> > Initial bcachefs pull request for 6.7-rc1
> >
> > Here's the bcachefs filesystem pull request.
> >
> > One new patch since last week: the exportfs constants ended up
> > conflicting with other filesystems that are also getting added to the
> > global enum, so switched to new constants picked by Amir.
> >
> > I'll also be sending another pull request later on in the cycle bringing
> > things up to date my master branch that people are currently running;
> > that will be restricted to fs/bcachefs/, naturally.
> >
> > Testing - fstests as well as the bcachefs specific tests in ktest:
> > https://evilpiepirate.org/~testdashboard/ci?branch=bcachefs-for-upstream
> >
> > It's also been soaking in linux-next, which resulted in a whole bunch of
> > smatch complaints and fixes and a patch or two from Kees.
> >
> > The only new non fs/bcachefs/ patch is the objtool patch that adds
> > bcachefs functions to the list of noreturns. The patch that exports
> > osq_lock() has been dropped for now, per Ingo.
>
> Thanks for your PR!
>
> > fs/bcachefs/mean_and_variance.c | 159 ++
> > fs/bcachefs/mean_and_variance.h | 198 ++
> > fs/bcachefs/mean_and_variance_test.c | 240 ++
>
> Looking into missing dependencies for MEAN_AND_VARIANCE_UNIT_TEST and
> failing mean_and_variance tests, this does not seem to match what was
> submitted for public review?
>
> Lore only has:
> "[PATCH 31/32] lib: add mean and variance module."
> https://lore.kernel.org/all/[email protected]/
It was later moved back into fs/bcachefs/, yes. I want to consolidate
the time stats code in bcachefs and bcachefs, so I'll be sending a PR to
move it back out at some point.
Can you point me at what's failing?
Hi Kent,
On Tue, Oct 31, 2023 at 3:45 PM Kent Overstreet
<[email protected]> wrote:
> On Tue, Oct 31, 2023 at 01:47:02PM +0100, Geert Uytterhoeven wrote:
> > On Mon, Oct 30, 2023 at 3:56 PM Kent Overstreet
> > <[email protected]> wrote:
> > > The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
> > >
> > > Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
> > >
> > > are available in the Git repository at:
> > >
> > > https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2023-10-30
> > >
> > > for you to fetch changes up to b827ac419721a106ae2fccaa40576b0594edad92:
> > >
> > > exportfs: Change bcachefs fid_type enum to avoid conflicts (2023-10-26 16:41:00 -0400)
> > >
> > > ----------------------------------------------------------------
> > > Initial bcachefs pull request for 6.7-rc1
> > >
> > > Here's the bcachefs filesystem pull request.
> > >
> > > One new patch since last week: the exportfs constants ended up
> > > conflicting with other filesystems that are also getting added to the
> > > global enum, so switched to new constants picked by Amir.
> > >
> > > I'll also be sending another pull request later on in the cycle bringing
> > > things up to date my master branch that people are currently running;
> > > that will be restricted to fs/bcachefs/, naturally.
> > >
> > > Testing - fstests as well as the bcachefs specific tests in ktest:
> > > https://evilpiepirate.org/~testdashboard/ci?branch=bcachefs-for-upstream
> > >
> > > It's also been soaking in linux-next, which resulted in a whole bunch of
> > > smatch complaints and fixes and a patch or two from Kees.
> > >
> > > The only new non fs/bcachefs/ patch is the objtool patch that adds
> > > bcachefs functions to the list of noreturns. The patch that exports
> > > osq_lock() has been dropped for now, per Ingo.
> >
> > Thanks for your PR!
> >
> > > fs/bcachefs/mean_and_variance.c | 159 ++
> > > fs/bcachefs/mean_and_variance.h | 198 ++
> > > fs/bcachefs/mean_and_variance_test.c | 240 ++
> >
> > Looking into missing dependencies for MEAN_AND_VARIANCE_UNIT_TEST and
> > failing mean_and_variance tests, this does not seem to match what was
> > submitted for public review?
> >
> > Lore only has:
> > "[PATCH 31/32] lib: add mean and variance module."
> > https://lore.kernel.org/all/[email protected]/
>
> It was later moved back into fs/bcachefs/, yes. I want to consolidate
> the time stats code in bcachefs and bcachefs, so I'll be sending a PR to
> move it back out at some point.
OK.
> Can you point me at what's failing?
MEAN_AND_VARIANCE_UNIT_TEST should depend on BCACHEFS_FS, as the actual
mean_and_variance code is only compiled if BCACHEFS_FS is enabled.
On m68k (ARAnyM), it fails with:
KTAP version 1
1..1
KTAP version 1
# Subtest: mean and variance tests
# module: mean_and_variance_test
1..9
ok 1 mean_and_variance_fast_divpow2
ok 2 mean_and_variance_u128_basic_test
ok 3 mean_and_variance_basic_test
ok 4 mean_and_variance_weighted_test
ok 5 mean_and_variance_weighted_advanced_test
ok 6 mean_and_variance_test_1
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 22 (0x16)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 32 (0x20)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 21 (0x15)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 29 (0x1d)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 20 (0x14)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 28 (0x1c)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 19 (0x13)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 27 (0x1b)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 18 (0x12)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 26 (0x1a)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 17 (0x11)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 25 (0x19)
stddev[i] == 9 (0x9)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 16 (0x10)
mean[i] == 10 (0xa)
# mean_and_variance_test_2: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 24 (0x18)
stddev[i] == 9 (0x9)
not ok 7 mean_and_variance_test_2
ok 8 mean_and_variance_test_3
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 22 (0x16)
mean[i] == 10 (0xa)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 32 (0x20)
stddev[i] == 9 (0x9)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 32 (0x20)
mean[i] == 11 (0xb)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 39 (0x27)
stddev[i] == 13 (0xd)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 40 (0x28)
mean[i] == 12 (0xc)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 42 (0x2a)
stddev[i] == 15 (0xf)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 46 (0x2e)
mean[i] == 13 (0xd)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 44 (0x2c)
stddev[i] == 17 (0x11)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:111
Expected mean_and_variance_get_mean(mv) == mean[i], but
mean_and_variance_get_mean(mv) == 50 (0x32)
mean[i] == 14 (0xe)
# mean_and_variance_test_4: EXPECTATION FAILED at
fs/bcachefs/mean_and_variance_test.c:112
Expected mean_and_variance_get_stddev(mv) == stddev[i], but
mean_and_variance_get_stddev(mv) == 45 (0x2d)
stddev[i] == 19 (0x13)
not ok 9 mean_and_variance_test_4
# mean and variance tests: pass:7 fail:2 skip:0 total:9
# Totals: pass:7 fail:2 skip:0 total:9
not ok 1 mean and variance tests
Haven't tried the test on any other platform yet, so this could be a
big-endian, 32-bit, m68k-specific, or even a generic problem.
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Using latest HEAD from linux git (commit
5a6a09e97199d6600d31383055f9d43fbbcbe86f (HEAD -> master,
origin/master, origin/HEAD), and the following config, I get this
failure when compiling on x86_64 Debian Bullseye (11):
CC fs/bcachefs/btree_io.o
In file included from fs/bcachefs/btree_io.c:11:
fs/bcachefs/btree_io.c: In function ‘bch2_btree_post_write_cleanup’:
fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
| ^~~~~~~~~~~~~~~~~~~
In file included from fs/bcachefs/bcachefs.h:206,
from fs/bcachefs/btree_io.c:3:
fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
2344 | struct bkey_packed start[0];
| ^~~~~
In file included from fs/bcachefs/btree_io.c:11:
fs/bcachefs/btree_io.c: In function ‘bch2_btree_init_next’:
fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
| ^~~~~~~~~~~~~~~~~~~
In file included from fs/bcachefs/bcachefs.h:206,
from fs/bcachefs/btree_io.c:3:
fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
2344 | struct bkey_packed start[0];
| ^~~~~
cc1: all warnings being treated as errors
make[4]: *** [scripts/Makefile.build:243: fs/bcachefs/btree_io.o] Error 1
make[3]: *** [scripts/Makefile.build:480: fs/bcachefs] Error 2
make[2]: *** [scripts/Makefile.build:480: fs] Error 2
make[1]: *** [/local/src/kernel/git/linux/Makefile:1913: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
My .config looks like this for BCACHEFS:
$ grep BCACHEFS .config
CONFIG_BCACHEFS_FS=y
CONFIG_BCACHEFS_QUOTA=y
CONFIG_BCACHEFS_POSIX_ACL=y
CONFIG_BCACHEFS_DEBUG_TRANSACTIONS=y
CONFIG_BCACHEFS_DEBUG=y
CONFIG_BCACHEFS_TESTS=y
# CONFIG_BCACHEFS_LOCK_TIME_STATS is not set
# CONFIG_BCACHEFS_NO_LATENCY_ACCT is not set
On Tue, Oct 31, 2023 at 05:48:39PM -0400, John Stoffel wrote:
>
> Using latest HEAD from linux git (commit
> 5a6a09e97199d6600d31383055f9d43fbbcbe86f (HEAD -> master,
> origin/master, origin/HEAD), and the following config, I get this
> failure when compiling on x86_64 Debian Bullseye (11):
>
>
> CC fs/bcachefs/btree_io.o
> In file included from fs/bcachefs/btree_io.c:11:
> fs/bcachefs/btree_io.c: In function ‘bch2_btree_post_write_cleanup’:
> fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
> 274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
> | ^~~~~~~~~~~~~~~~~~~
> In file included from fs/bcachefs/bcachefs.h:206,
> from fs/bcachefs/btree_io.c:3:
> fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
> 2344 | struct bkey_packed start[0];
> | ^~~~~
> In file included from fs/bcachefs/btree_io.c:11:
> fs/bcachefs/btree_io.c: In function ‘bch2_btree_init_next’:
> fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
> 274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
> | ^~~~~~~~~~~~~~~~~~~
> In file included from fs/bcachefs/bcachefs.h:206,
> from fs/bcachefs/btree_io.c:3:
> fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
> 2344 | struct bkey_packed start[0];
> | ^~~~~
> cc1: all warnings being treated as errors
> make[4]: *** [scripts/Makefile.build:243: fs/bcachefs/btree_io.o] Error 1
> make[3]: *** [scripts/Makefile.build:480: fs/bcachefs] Error 2
> make[2]: *** [scripts/Makefile.build:480: fs] Error 2
> make[1]: *** [/local/src/kernel/git/linux/Makefile:1913: .] Error 2
> make: *** [Makefile:234: __sub-make] Error 2
It seems gcc 10 complains in situations gcc 11 does not.
I've got the following patch running through my testing automation now:
-- >8 --
From: Kent Overstreet <[email protected]>
Date: Tue, 31 Oct 2023 18:05:22 -0400
Subject: [PATCH] bcachefs: Fix build errors with gcc 10
gcc 10 seems to complain about array bounds in situations where gcc 11
does not - curious.
This unfortunately requires adding some casts for now; we may
investigate getting rid of our __u64 _data[] VLA in a future patch so
that our start[0] members can be VLAs.
Reported-by: John Stoffel <[email protected]>
Signed-off-by: Kent Overstreet <[email protected]>
diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
index 29b000c6b7e1..5b44598b9df9 100644
--- a/fs/bcachefs/bcachefs_format.h
+++ b/fs/bcachefs/bcachefs_format.h
@@ -1617,9 +1617,7 @@ struct journal_seq_blacklist_entry {
struct bch_sb_field_journal_seq_blacklist {
struct bch_sb_field field;
-
- struct journal_seq_blacklist_entry start[0];
- __u64 _data[];
+ struct journal_seq_blacklist_entry start[];
};
struct bch_sb_field_errors {
diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c
index 8140b6e6e9a6..32693f7c6221 100644
--- a/fs/bcachefs/btree_trans_commit.c
+++ b/fs/bcachefs/btree_trans_commit.c
@@ -681,7 +681,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
BCH_JSET_ENTRY_overwrite,
i->btree_id, i->level,
i->old_k.u64s);
- bkey_reassemble(&entry->start[0],
+ bkey_reassemble((struct bkey_i *) entry->start,
(struct bkey_s_c) { &i->old_k, i->old_v });
}
@@ -689,7 +689,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
BCH_JSET_ENTRY_btree_keys,
i->btree_id, i->level,
i->k->k.u64s);
- bkey_copy(&entry->start[0], i->k);
+ bkey_copy((struct bkey_i *) entry->start, i->k);
}
trans_for_each_wb_update(trans, wb) {
@@ -697,7 +697,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
BCH_JSET_ENTRY_btree_keys,
wb->btree, 0,
wb->k.k.u64s);
- bkey_copy(&entry->start[0], &wb->k);
+ bkey_copy((struct bkey_i *) entry->start, &wb->k);
}
if (trans->journal_seq)
diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c
index d029e0348c91..89ada89eafe7 100644
--- a/fs/bcachefs/btree_update_interior.c
+++ b/fs/bcachefs/btree_update_interior.c
@@ -2411,7 +2411,7 @@ void bch2_journal_entry_to_btree_root(struct bch_fs *c, struct jset_entry *entry
r->level = entry->level;
r->alive = true;
- bkey_copy(&r->key, &entry->start[0]);
+ bkey_copy(&r->key, (struct bkey_i *) entry->start);
mutex_unlock(&c->btree_root_lock);
}
diff --git a/fs/bcachefs/btree_update_interior.h b/fs/bcachefs/btree_update_interior.h
index 5e0a467fe905..d92b3cf5f5e0 100644
--- a/fs/bcachefs/btree_update_interior.h
+++ b/fs/bcachefs/btree_update_interior.h
@@ -271,7 +271,7 @@ static inline struct btree_node_entry *want_new_bset(struct bch_fs *c,
struct btree_node_entry *bne = max(write_block(b),
(void *) btree_bkey_last(b, bset_tree_last(b)));
ssize_t remaining_space =
- __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
+ __bch_btree_u64s_remaining(c, b, bne->keys.start);
if (unlikely(bset_written(b, bset(b, t)))) {
if (remaining_space > (ssize_t) (block_bytes(c) >> 3))
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index f73338f37bf1..9600b8083175 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -226,7 +226,7 @@ static int journal_replay_entry_early(struct bch_fs *c,
if (entry->u64s) {
r->level = entry->level;
- bkey_copy(&r->key, &entry->start[0]);
+ bkey_copy(&r->key, (struct bkey_i *) entry->start);
r->error = 0;
} else {
r->error = -EIO;
>>>>> "Kent" == Kent Overstreet <[email protected]> writes:
> On Tue, Oct 31, 2023 at 05:48:39PM -0400, John Stoffel wrote:
>>
>> Using latest HEAD from linux git (commit
>> 5a6a09e97199d6600d31383055f9d43fbbcbe86f (HEAD -> master,
>> origin/master, origin/HEAD), and the following config, I get this
>> failure when compiling on x86_64 Debian Bullseye (11):
>>
>>
>> CC fs/bcachefs/btree_io.o
>> In file included from fs/bcachefs/btree_io.c:11:
>> fs/bcachefs/btree_io.c: In function ‘bch2_btree_post_write_cleanup’:
>> fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
>> 274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
>> | ^~~~~~~~~~~~~~~~~~~
>> In file included from fs/bcachefs/bcachefs.h:206,
>> from fs/bcachefs/btree_io.c:3:
>> fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
>> 2344 | struct bkey_packed start[0];
>> | ^~~~~
>> In file included from fs/bcachefs/btree_io.c:11:
>> fs/bcachefs/btree_io.c: In function ‘bch2_btree_init_next’:
>> fs/bcachefs/btree_update_interior.h:274:36: error: array subscript 0 is outside the bounds of an interior zero-length array ‘struct bkey_packed[0]’ [-Werror=zero-length-bounds]
>> 274 | __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
>> | ^~~~~~~~~~~~~~~~~~~
>> In file included from fs/bcachefs/bcachefs.h:206,
>> from fs/bcachefs/btree_io.c:3:
>> fs/bcachefs/bcachefs_format.h:2344:21: note: while referencing ‘start’
>> 2344 | struct bkey_packed start[0];
>> | ^~~~~
>> cc1: all warnings being treated as errors
>> make[4]: *** [scripts/Makefile.build:243: fs/bcachefs/btree_io.o] Error 1
>> make[3]: *** [scripts/Makefile.build:480: fs/bcachefs] Error 2
>> make[2]: *** [scripts/Makefile.build:480: fs] Error 2
>> make[1]: *** [/local/src/kernel/git/linux/Makefile:1913: .] Error 2
>> make: *** [Makefile:234: __sub-make] Error 2
> It seems gcc 10 complains in situations gcc 11 does not.
> I've got the following patch running through my testing automation now:
> -- >8 --
> From: Kent Overstreet <[email protected]>
> Date: Tue, 31 Oct 2023 18:05:22 -0400
> Subject: [PATCH] bcachefs: Fix build errors with gcc 10
> gcc 10 seems to complain about array bounds in situations where gcc 11
> does not - curious.
> This unfortunately requires adding some casts for now; we may
> investigate getting rid of our __u64 _data[] VLA in a future patch so
> that our start[0] members can be VLAs.
> Reported-by: John Stoffel <[email protected]>
> Signed-off-by: Kent Overstreet <[email protected]>
> diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
> index 29b000c6b7e1..5b44598b9df9 100644
> --- a/fs/bcachefs/bcachefs_format.h
> +++ b/fs/bcachefs/bcachefs_format.h
> @@ -1617,9 +1617,7 @@ struct journal_seq_blacklist_entry {
> struct bch_sb_field_journal_seq_blacklist {
> struct bch_sb_field field;
> -
> - struct journal_seq_blacklist_entry start[0];
> - __u64 _data[];
> + struct journal_seq_blacklist_entry start[];
> };
> struct bch_sb_field_errors {
> diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c
> index 8140b6e6e9a6..32693f7c6221 100644
> --- a/fs/bcachefs/btree_trans_commit.c
> +++ b/fs/bcachefs/btree_trans_commit.c
> @@ -681,7 +681,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
> BCH_JSET_ENTRY_overwrite,
i-> btree_id, i->level,
i-> old_k.u64s);
> - bkey_reassemble(&entry->start[0],
> + bkey_reassemble((struct bkey_i *) entry->start,
> (struct bkey_s_c) { &i->old_k, i->old_v });
> }
> @@ -689,7 +689,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
> BCH_JSET_ENTRY_btree_keys,
i-> btree_id, i->level,
i-> k->k.u64s);
> - bkey_copy(&entry->start[0], i->k);
> + bkey_copy((struct bkey_i *) entry->start, i->k);
> }
> trans_for_each_wb_update(trans, wb) {
> @@ -697,7 +697,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans, unsigned flags,
> BCH_JSET_ENTRY_btree_keys,
wb-> btree, 0,
wb-> k.k.u64s);
> - bkey_copy(&entry->start[0], &wb->k);
> + bkey_copy((struct bkey_i *) entry->start, &wb->k);
> }
> if (trans->journal_seq)
> diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c
> index d029e0348c91..89ada89eafe7 100644
> --- a/fs/bcachefs/btree_update_interior.c
> +++ b/fs/bcachefs/btree_update_interior.c
> @@ -2411,7 +2411,7 @@ void bch2_journal_entry_to_btree_root(struct bch_fs *c, struct jset_entry *entry
r-> level = entry->level;
r-> alive = true;
> - bkey_copy(&r->key, &entry->start[0]);
> + bkey_copy(&r->key, (struct bkey_i *) entry->start);
> mutex_unlock(&c->btree_root_lock);
> }
> diff --git a/fs/bcachefs/btree_update_interior.h b/fs/bcachefs/btree_update_interior.h
> index 5e0a467fe905..d92b3cf5f5e0 100644
> --- a/fs/bcachefs/btree_update_interior.h
> +++ b/fs/bcachefs/btree_update_interior.h
> @@ -271,7 +271,7 @@ static inline struct btree_node_entry *want_new_bset(struct bch_fs *c,
> struct btree_node_entry *bne = max(write_block(b),
> (void *) btree_bkey_last(b, bset_tree_last(b)));
> ssize_t remaining_space =
> - __bch_btree_u64s_remaining(c, b, &bne->keys.start[0]);
> + __bch_btree_u64s_remaining(c, b, bne->keys.start);
> if (unlikely(bset_written(b, bset(b, t)))) {
> if (remaining_space > (ssize_t) (block_bytes(c) >> 3))
> diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
> index f73338f37bf1..9600b8083175 100644
> --- a/fs/bcachefs/recovery.c
> +++ b/fs/bcachefs/recovery.c
> @@ -226,7 +226,7 @@ static int journal_replay_entry_early(struct bch_fs *c,
> if (entry->u64s) {
r-> level = entry->level;
> - bkey_copy(&r->key, &entry->start[0]);
> + bkey_copy(&r->key, (struct bkey_i *) entry->start);
r-> error = 0;
> } else {
r-> error = -EIO;
So this fixes the compile error, thanks! Sorry for not reporting the
gcc version better. And it also compiles nicely when I remove all the
BACHEFS .config entries, accept all the defaults from 'make oldconfig'
and re-compile.
Cheers,
John
Hi Kent,
On Tue, Oct 31, 2023 at 4:00 PM Geert Uytterhoeven <[email protected]> wrote:
> On Tue, Oct 31, 2023 at 3:45 PM Kent Overstreet
> MEAN_AND_VARIANCE_UNIT_TEST should depend on BCACHEFS_FS, as the actual
> mean_and_variance code is only compiled if BCACHEFS_FS is enabled.
And I really meant "should depend on BCACHEFS_FS", not "should select
BCACHEFS_FS", like is done in today's linux-next:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/fs/bcachefs/Kconfig?h=next-20231101&id=487ed6712ae1bf2311197bd41ae572ff8da5e966
> On m68k (ARAnyM), it fails with:
[...]
> # Totals: pass:7 fail:2 skip:0 total:9
> not ok 1 mean and variance tests
>
> Haven't tried the test on any other platform yet, so this could be a
> big-endian, 32-bit, m68k-specific, or even a generic problem.
It fails in the exact same way on arm32 and arm64...
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds