Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bcachefs: document btree iter flags #287

Open
wants to merge 809 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
809 commits
Select commit Hold shift + click to select a range
f03a5ef
bcachefs: Replace bch2_btree_iter_next() calls with bch2_btree_iter_a…
koverstreet Mar 21, 2021
b7cc390
bcachefs: Have btree_iter_next_node() use btree_iter_set_search_pos()
koverstreet Mar 21, 2021
62f970f
bcachefs: Iterators are now always consistent with iter->real_pos
koverstreet Mar 21, 2021
590d39a
bcachefs: Kill btree_iter_peek_uptodate()
koverstreet Mar 21, 2021
6015114
bcachefs: Internal btree iterator renaming
koverstreet Mar 21, 2021
ed60a42
bcachefs: Improve iter->real_pos handling
koverstreet Mar 21, 2021
ac25f77
bcachefs: Consolidate bch2_btree_iter_peek() and peek_with_updates()
koverstreet Mar 21, 2021
2ac6561
bcachefs: Update iter->real_pos lazily
koverstreet Mar 22, 2021
7954483
bcachefs: Include snapshot field in bch2_bpos_to_text
koverstreet Mar 22, 2021
e093c27
bcachefs: Add an .invalid method for bch2_btree_ptr_v2
koverstreet Mar 22, 2021
43bdc71
bcachefs: Improve inode deletion code
koverstreet Mar 22, 2021
09599b1
bcachefs: Split btree_iter_traverse and bch2_btree_iter_traverse()
koverstreet Mar 24, 2021
bfed750
six locks: pcpu mode
koverstreet Mar 23, 2021
1f8a56d
bcachefs: Use pcpu mode of six locks for interior nodes
koverstreet Mar 24, 2021
8e392f1
bcachefs: Increase default journal size
koverstreet Mar 25, 2021
9baba83
bcachefs: Drop bkey noops
koverstreet Mar 25, 2021
b011815
bcachefs: Generate better bkey formats when splitting nodes
koverstreet Mar 27, 2021
e0ace9f
bcachefs: Fix building of aux search trees
koverstreet Mar 27, 2021
f705ee5
bcachefs: Fix packed bkey format calculation for new btree roots
koverstreet Mar 27, 2021
0977dcf
bcachefs: Fix for bch2_trans_commit() unlocking when it's not suppose…
koverstreet Mar 28, 2021
de257da
bcachefs: Simplify btree_node_iter_init_pack_failed()
koverstreet Mar 28, 2021
f693657
bcachefs: btree key cache locking improvements
koverstreet Mar 25, 2021
c49a165
bcachefs: Add a mechanism for running callbacks at trans commit time
koverstreet Feb 4, 2021
aaf19ec
bcachefs: Split out bpos_cmp() and bkey_cmp()
koverstreet Mar 4, 2021
6a39bf1
bcachefs: Start using bpos.snapshot field
koverstreet Mar 24, 2021
62d5a30
bcachefs: Inode backpointers
koverstreet Mar 2, 2021
4328000
bcachefs: Change inode allocation code for snapshots
koverstreet Mar 15, 2021
bc50aa9
bcachefs: Don't use bch2_inode_find_by_inum() in move.c
koverstreet Mar 16, 2021
8db123a
bcachefs: Have journal reclaim thread flush more aggressively
koverstreet Mar 29, 2021
7aa784e
bcachefs: Free iterator in bch2_btree_delete_range_trans()
koverstreet Mar 29, 2021
26ef0f9
bcachefs: Add repair code for out of order keys in a btree node.
koverstreet Mar 29, 2021
4b041ad
bcachefs: Don't use write side of mark_lock in journal write path
koverstreet Mar 29, 2021
711615a
bcachefs: Don't make foreground writes wait behind journal reclaim to…
koverstreet Mar 31, 2021
c5e7196
bcachefs: Move btree lock debugging to slowpath fn
koverstreet Mar 31, 2021
d2599dd
bcachefs: Improve bch2_trans_relock()
koverstreet Mar 31, 2021
f87897e
bcachefs: Add a sysfs var for average btree write size
koverstreet Apr 1, 2021
8629ca8
bcachefs: Improve bch2_btree_update_start()
koverstreet Mar 31, 2021
4a4145b
bcachefs: Change where merging of interior btree nodes is trigger from
koverstreet Mar 31, 2021
c96a4a3
bcachefs: Kill bch2_btree_node_get_sibling()
koverstreet Mar 29, 2021
f4b9c2e
bcachefs: bch2_foreground_maybe_merge() now correctly reports lock re…
koverstreet Mar 31, 2021
f1d92ff
bcachefs: Move btree node merging to before transaction commit
koverstreet Mar 29, 2021
b2f1bca
bcachefs: Drop trans->nounlock
koverstreet Mar 31, 2021
cd6a383
bcachefs: Fix BTREE_FOREGROUND_MERGE_HYSTERESIS
koverstreet Mar 31, 2021
c1435ec
bcachefs: Increase commality between BTREE_ITER_NODES and BTREE_ITER_…
koverstreet Apr 3, 2021
b3a12c3
bcachefs: Fix this_cpu_ptr() usage
koverstreet Apr 3, 2021
faff072
bcachefs: Fix journal deadlock
koverstreet Apr 3, 2021
a473618
bcachefs: Be more careful about JOURNAL_RES_GET_RESERVED
koverstreet Apr 3, 2021
f35ad4a
bcachefs: Fix livelock calling bch2_mark_bkey_replicas()
koverstreet Apr 3, 2021
6166ec1
bcachefs: Kill bch2_fs_usage_scratch_get()
koverstreet Apr 4, 2021
2c7ddd1
bcachefs: Drop some memset() calls
koverstreet Apr 4, 2021
a61280b
bcachefs: Eliminate memory barrier from fast path of journal_preres_p…
koverstreet Apr 4, 2021
ed49106
bcachefs: kill bset_tree->max_key
koverstreet Apr 4, 2021
0bc4588
bcachefs: Fix an uninitialized variable
koverstreet Apr 5, 2021
f8ad618
bcachefs: Fix a startup race
koverstreet Apr 5, 2021
cc48251
bcachefs: Increase BSET_CACHELINE to 256 bytes
koverstreet Apr 6, 2021
82b0b82
bcachefs: Eliminate more PAGE_SIZE uses
koverstreet Apr 6, 2021
055bd1f
bcachefs: Don't flush btree writes more aggressively because of btree…
koverstreet Apr 1, 2021
3236a63
bcachefs: Improve bset compaction
koverstreet Apr 6, 2021
c22b40f
bcachefs: Move some dirent checks to bch2_dirent_invalid()
koverstreet Apr 7, 2021
fa66fe6
bcachefs: Drop bch2_fsck_inode_nlink()
koverstreet Apr 7, 2021
b0d051c
bcachefs: Don't wait for ALLOC_SCAN_BATCH buckets in allocator
koverstreet Apr 8, 2021
e456606
bcachefs: Make sure to kick journal reclaim when we're waiting on it
koverstreet Apr 8, 2021
f3a0504
bcachefs: Fix bch2_gc_btree_gens()
koverstreet Apr 9, 2021
c78bbbb
bcachefs: Fix BTREE_ITER_NOT_EXTENTS
koverstreet Apr 9, 2021
e2529f5
bcachefs: Check inodes at start of fsck
koverstreet Apr 7, 2021
8232d3f
bcachefs: Simplify hash table checks
koverstreet Apr 7, 2021
3026647
bcachefs: Inode backpointers are now required
koverstreet Apr 7, 2021
4193875
bcachefs: Redo check_nlink fsck pass
koverstreet Apr 8, 2021
3933cc7
bcachefs: Fix bch2_trans_relock()
koverstreet Apr 12, 2021
a6e0f02
bcachefs: Fix fsck to not use bch2_link_trans()
koverstreet Apr 9, 2021
41068ce
bcachefs: Improved check_directory_structure()
koverstreet Apr 7, 2021
092f386
bcachefs: BCH_BEATURE_atomic_nlink is obsolete
koverstreet Apr 13, 2021
e0857ba
bcachefs: Fix heap overrun in bch2_fs_usage_read()
koverstreet Apr 13, 2021
1b9d964
bcachefs: Add the status of bucket gen gc to sysfs
koverstreet Apr 13, 2021
796552e
bcachefs: Ensure bucket gen gc completes
koverstreet Apr 13, 2021
786d937
bcachefs: Add a perf test for multiple updates per commit
koverstreet Apr 14, 2021
b532c47
bcachefs: Drop old style btree node coalescing
koverstreet Apr 14, 2021
bb331d5
bcachefs: Better iterator picking
koverstreet Apr 14, 2021
3d08072
bcachefs: Don't call bch2_btree_iter_traverse() unnecessarily
koverstreet Apr 14, 2021
cf88919
bcachefs: Fix bch2_gc_done() error messages
koverstreet Apr 15, 2021
916e831
bcachefs: Fix journal_reclaim_wait_done()
koverstreet Apr 15, 2021
681254c
bcachefs: Improve bch2_btree_iter_traverse_all()
koverstreet Apr 14, 2021
6b829c7
bcachefs: Don't downgrade iterators in bch2_trans_get_iter()
koverstreet Apr 15, 2021
b75c79e
bcachefs: Improve trans_restart_mem_realloced tracepoint
koverstreet Apr 15, 2021
ed4e354
bcachefs: Fix bch2_trans_mark_dev_sb()
koverstreet Apr 15, 2021
f536ef2
bcachefs: Simplify bch2_set_nr_journal_buckets()
koverstreet Apr 15, 2021
d924b3a
bcachefs: Fix an RCU splat
koverstreet Apr 15, 2021
9f6175d
bcachefs: Fix journal reclaim loop
koverstreet Apr 16, 2021
35aaaa5
bcachefs: Fix transaction restarts due to upgrading of cloned iterators
koverstreet Apr 16, 2021
b017244
bcachefs: Simplify fsck remove_dirent()
koverstreet Apr 16, 2021
37f6644
bcachefs: Fix some small memory leaks
koverstreet Apr 16, 2021
f8ab8f7
bcachefs: Fix an unused var warning in userspace
koverstreet Apr 16, 2021
0b3fb77
bcachefs: Refactor bchfs_fallocate() to not nest btree_trans on stack
koverstreet Apr 17, 2021
8d8237a
bcachefs: gc shouldn't care about owned_by_allocator
koverstreet Apr 17, 2021
b221f44
bcachefs: Allocator thread doesn't need gc_lock anymore
koverstreet Apr 17, 2021
a571251
bcachefs: Handle errors in bch2_trans_mark_update()
koverstreet Apr 18, 2021
578a1d8
bcachefs: Check that keys are in the correct btrees
koverstreet Apr 18, 2021
9558637
bcachefs: Always check for invalid bkeys in trans commit path
koverstreet Apr 18, 2021
e06da7e
bcachefs: Allocator refactoring
koverstreet Apr 18, 2021
367c77e
bcachefs: Preallocate trans mem in bch2_migrate_index_update()
koverstreet Apr 19, 2021
62aba35
bcachefs: Fix for btree_gc repairing interior btree ptrs
koverstreet Apr 19, 2021
af037f9
bcachefs: Fix a use after free
koverstreet Apr 19, 2021
709ad38
bcachefs: Punt btree writes to workqueue to submit
koverstreet Apr 6, 2021
ce6f9b1
bcachefs: Fix two btree iterator leaks
koverstreet Apr 21, 2021
326a423
bcachefs: Update bch2_btree_verify()
koverstreet Apr 21, 2021
611e634
bcachefs: Fix a deadlock on journal reclaim
koverstreet Apr 20, 2021
86f5d14
bcachefs: Don't BUG() in update_replicas
koverstreet Apr 21, 2021
e4eb135
bcachefs: Lookup/create lost+found lazily
koverstreet Apr 20, 2021
4a8cbb5
bcachefs: Fix repair leading to replicas not marked
koverstreet Apr 23, 2021
3396fc3
bcachefs: Don't BUG_ON() btree topology error
koverstreet Apr 23, 2021
45cf529
bcachefs: Add a mempool for btree_trans bump allocator
koverstreet Apr 24, 2021
6335bf9
bcachefs: Add a mempool for the replicas delta list
koverstreet Apr 24, 2021
2c8805f
bcachefs: Use mmap() instead of vmalloc_exec() in userspace
koverstreet Apr 24, 2021
627eebf
bcachefs: Fix an out of bounds read
koverstreet Apr 24, 2021
604ba8f
bcachefs: Fix bch2_verify_keylist_sorted
koverstreet Apr 24, 2021
bb2fb4d
bcachefs: Rewrite btree nodes with errors
koverstreet Apr 24, 2021
f80559d
bcachefs: New helper __bch2_btree_insert_keys_interior()
koverstreet Apr 23, 2021
622fb67
bcachefs: Fix key cache assertion
koverstreet Apr 24, 2021
796b4d6
bcachefs: New and improved topology repair code
koverstreet Apr 24, 2021
7f4c092
bcachefs: Fix a null ptr deref
koverstreet Apr 25, 2021
12c03ad
bcachefs: New check_nlinks algorithm for snapshots
koverstreet Apr 22, 2021
66bd52f
bcachefs: Evict btree nodes we're deleting
koverstreet Apr 25, 2021
1624ffb
bcachefs: Fix __bch2_trans_get_iter()
koverstreet Apr 27, 2021
464604b
bcachefs: New tracepoint for bch2_trans_get_iter()
koverstreet Apr 29, 2021
a0c0ef6
bcachefs: Call bch2_inconsistent_error() on missing stripe/indirect e…
koverstreet Apr 30, 2021
c5c083e
bcachefs: Change bch2_btree_key_cache_count() to exclude dirty keys
koverstreet Apr 27, 2021
8e71de1
bcachefs: Change copygc wait amount to be min of per device waits
koverstreet Apr 27, 2021
11722e4
bcachefs: Enable .splice_write
koverstreet Apr 27, 2021
2713f8f
bcachefs: Ensure that fpunch updates inode timestamps
koverstreet Apr 28, 2021
9235ea9
bcachefs: Make sure to initialize j->last_flushed
koverstreet Apr 29, 2021
72f4235
bcachefs: Add a tracepoint for when we block on journal reclaim
koverstreet Apr 29, 2021
e0588a9
bcachefs: Fix time handling
koverstreet Apr 29, 2021
47086b2
bcachefs: Mark newly allocated btree nodes as accessed
koverstreet Apr 29, 2021
0faf0b9
bcachefs: Clean up bch2_btree_and_journal_walk()
koverstreet Apr 29, 2021
d79ed15
bcachefs: Fix usage of last_seq + encryption
koverstreet May 8, 2021
15c3bd9
bcachefs: Fix oob write in __bch2_btree_node_write
dlrobertson May 8, 2021
584edb3
bcachefs: Fix some refcounting bugs
koverstreet May 8, 2021
8631fe1
bcachefs: Fix reflink trigger
koverstreet May 4, 2021
acd02ad
bcachefs: Fix bch2_btree_iter_peek_with_updates()
koverstreet Apr 30, 2021
c912de1
bcachefs: Make sure to use BTREE_ITER_PREFETCH in fsck
koverstreet May 14, 2021
b6485ba
bcachefs: avoid out-of-bounds in split_devs
stintel May 13, 2021
9a1a324
bcachefs: Fix error in parsing of mount options
dlrobertson May 9, 2021
608e5c0
bcachefs: Fix possible null deref on mount
dlrobertson May 12, 2021
ba9b474
bcachefs: Fix null deref in bch2_ioctl_read_super
dlrobertson May 13, 2021
6185b68
bcachefs: Fix out of bounds read in fs usage ioctl
dlrobertson May 5, 2021
b3fa155
bcachefs: Repair code for multiple types of data in same bucket
koverstreet May 15, 2021
c63bb6c
bcachefs: properly initialize used values
dlrobertson May 15, 2021
7206249
bcachefs: Fix locking in __bch2_set_nr_journal_buckets()
koverstreet May 17, 2021
80b0912
bcachefs: made changes to support clang, fixed a couple bugs
holmanb May 17, 2021
dc2017f
bcachefs: Make sure to pass a disk reservation to bch2_extent_update()
koverstreet May 17, 2021
ba8b58e
bcachefs: Fix bch2_extent_can_insert() call
koverstreet May 17, 2021
2bc143f
bcachefs: Fix a memcpy call
koverstreet May 17, 2021
b9b8d2a
bcachefs: Fix for bch2_bkey_pack_pos() not initializing len/version f…
koverstreet May 17, 2021
ff385e2
bcachefs: statfs resports incorrect avail blocks
dlrobertson May 19, 2021
2338021
bcachefs: Move io_in_flight ratelimiting to fs-io.c
koverstreet May 19, 2021
7ad303b
bcachefs: Split extents if necessary in bch2_trans_update()
koverstreet May 19, 2021
43cdd55
bcachefs: Make bch2_remap_range respect O_SYNC
koverstreet May 20, 2021
c44a67b
bcachefs: Fix inode backpointers in RENAME_OVERWRITE
koverstreet May 20, 2021
c41fe16
bcachefs: Fix for buffered writes getting -ENOSPC
koverstreet May 20, 2021
6e05093
bcachefs: Fix an uninitialized var
koverstreet May 21, 2021
06c9b99
bcachefs: Don't repair btree nodes until after interior journal repla…
koverstreet May 21, 2021
f2f21c4
bcachefs: Add a debug mode that always reads from every btree replica
koverstreet May 22, 2021
d3a41e6
bcachefs: rewrote prefetch asm in gas syntax for clang compatibility
holmanb May 21, 2021
d3ff825
bcachefs: Add a workqueue for btree io completions
koverstreet May 22, 2021
d3faf2e
bcachefs: Improve FS_IOC_GOINGDOWN ioctl
koverstreet May 23, 2021
4d0ed4f
bcachefs: Fix an issue with inconsistent btree writes after unclean s…
koverstreet May 23, 2021
c4f7a93
bcachefs: Fix a null ptr deref
koverstreet May 23, 2021
9987cc6
bcachefs: Add a cond_resched call to the copygc main loop
koverstreet May 25, 2021
c3021a0
bcachefs: Add a tracepoint for copygc waiting
koverstreet May 26, 2021
90229e0
bcachefs: Don't use uuid in tracepoints
koverstreet May 27, 2021
5ab4ed8
bcachefs: Add an option to control sharding new inode numbers
koverstreet May 28, 2021
312b8e2
bcachefs: Reflink refcount fix
koverstreet May 28, 2021
12f7c58
bcachefs: Fix journal write error path
koverstreet May 28, 2021
55fb904
bcachefs: Fix pathalogical behaviour with inode sharding by cpu ID
koverstreet May 28, 2021
4eeee7e
bcachefs: Split out btree_error_wq
koverstreet May 28, 2021
c9126b6
bcachefs: Fix a deadlock
koverstreet May 26, 2021
018d870
bcachefs: Assorted endianness fixes
koverstreet May 23, 2021
4ce4b13
bcachefs: Fsck for reflink refcounts
koverstreet May 23, 2021
8b1f272
bcachefs: Don't fragment extents when making them indirect
koverstreet Mar 21, 2021
777216b
bcachefs: Journal space calculation fix
koverstreet May 31, 2021
e63eaf1
bcachefs; Check for allocator thread shutdown
koverstreet Jun 1, 2021
f4dcafe
bcachefs: Check for errors from bch2_trans_update()
koverstreet Jun 2, 2021
a967283
bcachefs: Preallocate transaction mem
koverstreet Jun 3, 2021
e53e5da
bcachefs: Improve btree iterator tracepoints
koverstreet Jun 4, 2021
7ada71d
bcachefs: btree_iter->should_be_locked
koverstreet Jun 4, 2021
96c63a5
bcachefs: do not compile acl mod on minimal config
dlrobertson Jun 5, 2021
3ed7d76
bcachefs: Fix unitialized use of a value
holmanb Jun 6, 2021
219e0b9
bcachefs: Fix a spurious debug mode assertion
koverstreet Jun 8, 2021
c841a2f
bcachefs: Don't mark superblocks past end of usable space
koverstreet Jun 9, 2021
0e4ae06
bcachefs: Fix a buffer overrun
koverstreet Jun 10, 2021
4c1fcce
bcachefs: More topology repair code
koverstreet Jun 7, 2021
bc1d447
bcachefs: Drop all btree locks when submitting btree node reads
koverstreet Apr 9, 2021
f67eccc
bcachefs: Child btree iterators
koverstreet Mar 20, 2021
b2bfd4c
bcachefs: BTREE_ITER_WITH_UPDATES
koverstreet Jun 4, 2021
d627c91
bcachefs: Move extent_handle_overwrites() to bch2_trans_update()
koverstreet Jun 2, 2021
af64f54
bcachefs: Simplify reflink trigger
koverstreet Jun 7, 2021
4cc6bd6
bcachefs: Kill trans->updates2
koverstreet Jun 7, 2021
b980126
bcachefs: Clean up key merging
koverstreet Apr 29, 2021
3e44223
bcachefs: Re-implement extent merging in transaction commit path
koverstreet Apr 29, 2021
baf7f97
bcachefs: Improved extent merging
koverstreet May 15, 2021
1a6efd6
bcachefs: Merging for indirect extents
koverstreet May 15, 2021
f481b92
bcachefs: Always zero memory from bch2_trans_kmalloc()
koverstreet Jun 7, 2021
a0edcc5
bcachefs: Fix overflow in journal_replay_entry_early
koverstreet Jun 11, 2021
e38b363
bcachefs: Fix null ptr deref when splitting compressed extents
koverstreet Jun 12, 2021
9fbb15d
bcachefs: mount: fix null deref with null devname
dlrobertson Jun 10, 2021
e367b10
bcachefs: Allow shorter JSET_ENTRY_dev_usage entries
koverstreet Jun 12, 2021
9454e4c
bcachefs: Kill bch2_btree_iter_peek_cached()
koverstreet Jun 11, 2021
d73739d
bcachefs: Don't underflow c->sectors_available
koverstreet Jun 11, 2021
e965a2d
bcachefs: Clear iter->should_be_locked in bch2_trans_reset
koverstreet Jun 13, 2021
81c8db2
bcachefs: fix a possible bcachefs checksum mapping error opt-checksum…
jpsollie Jun 13, 2021
5385206
bcachefs: Fix a memory leak in dio write path
koverstreet Jun 14, 2021
9ce0ab1
bcachefs: Make sure bch2_trans_mark_update uses correct iter flags
koverstreet Jun 14, 2021
8c15305
bcachefs: Kill __btree_delete_at()
koverstreet Jun 14, 2021
bfbac7e
bcachefs: Improve iter->should_be_locked
koverstreet Jun 14, 2021
5d8dd70
bcachefs: fix truncate with ATTR_MODE
koverstreet Jun 15, 2021
ca57c3d
bcachefs: Extensive triggers cleanups
koverstreet Jun 11, 2021
816303a
bcachefs: Don't disable preemption unnecessarily
koverstreet Jun 11, 2021
7d2863e
bcachefs: ensure iter->should_be_locked is set
dlrobertson Jun 17, 2021
1505932
bcachefs: Don't ratelimit certain fsck errors
koverstreet Jun 21, 2021
11d5b7e
bcachefs: Start journal reclaim thread earlier
koverstreet Jun 21, 2021
9227fcd
bcachefs: Don't loop into topology repair
koverstreet Jun 23, 2021
3ba69f2
bcachefs: Fix btree_node_read_all_replicas() error handling
koverstreet Jun 23, 2021
9405cd5
bcachefs: Use memalloc_nofs_save() in bch2_read_endio()
koverstreet Jun 30, 2021
208b2e5
bcachefs: Fix unused variable warning when !BCACHEFS_DEBUG
RAOF Jun 25, 2021
405319f
bcachefs: ensure iter->should_be_locked is set
dlrobertson Jun 29, 2021
25b1a38
bcachefs: fix ifdef for x86_64 asm
dlrobertson Jul 3, 2021
b8336eb
bcachefs: fix truncate without a size change
dlrobertson Jun 28, 2021
302ffa9
bcachefs: Fix shift-by-64 in bch2_bkey_format_validate()
koverstreet Jun 24, 2021
664f984
bcachefs: statfs bfree and bavail should be the same
dlrobertson Jun 23, 2021
dbdf23d
bcachefs: Fix bch2_acl_chmod() cleanup on error
dlrobertson Jun 24, 2021
65fe443
bcachefs: Fix bch2_btree_iter_peek_prev()
koverstreet Jul 4, 2021
afdadd4
bcachefs: Increase BTREE_TRANS_MEM_MAX
koverstreet Jul 5, 2021
91c93f3
bcachefs: Enforce SYS_CAP_ADMIN within ioctls
nckx Jul 4, 2021
9933468
bcachefs: Prepare checksums for more advanced algorithms
jpsollie Jun 17, 2021
dbee44d
bcachefs: add bcachefs xxhash support
jpsollie Jun 17, 2021
f894db4
bcachefs: Split out SPOS_MAX
koverstreet Jul 6, 2021
f7840a1
bcachefs: Fix bch2_btree_iter_peek_slot() assertion
koverstreet Jul 6, 2021
83163ca
bcachefs: bch2_d_types[]
koverstreet Jul 6, 2021
7e96ce3
bcachefs: BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE
koverstreet Jul 6, 2021
3693b2c
fixup! bcachefs: More topology repair code
koverstreet Jul 8, 2021
3be83f5
bcachefs: set disk state should check new_state
dlrobertson Jul 8, 2021
c4ff9b9
bcachefs: docs: add docs for bch2_trans_reset
dlrobertson Jul 8, 2021
f547217
fixup! bcache: move closures to lib/
koverstreet Jul 10, 2021
e93a406
locking/lockdep: lock_class_is_held()
koverstreet Jul 11, 2021
539e30c
bcachefs: Regularize argument passing of btree_trans
koverstreet Jul 11, 2021
82d1236
bcachefs: Assert that btree node locks aren't being leaked
koverstreet Mar 31, 2021
c1c29de
bcachefs: Really don't hold btree locks while btree IOs are in flight
koverstreet Jul 11, 2021
400c2f8
bcachefs: Mask out unknown compat features when going read-write
koverstreet Jul 11, 2021
448fd0a
bcachefs: Kick off btree node writes from write completions
koverstreet Jul 11, 2021
0874be6
bcachefs: document btree iter flags
dlrobertson Jul 13, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions block/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,20 +493,20 @@ struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned short nr_iovecs)
}
EXPORT_SYMBOL(bio_kmalloc);

void zero_fill_bio(struct bio *bio)
void zero_fill_bio_iter(struct bio *bio, struct bvec_iter start)
{
unsigned long flags;
struct bio_vec bv;
struct bvec_iter iter;

bio_for_each_segment(bv, bio, iter) {
__bio_for_each_segment(bv, bio, iter, start) {
char *data = bvec_kmap_irq(&bv, &flags);
memset(data, 0, bv.bv_len);
flush_dcache_page(bv.bv_page);
bvec_kunmap_irq(data, &flags);
}
}
EXPORT_SYMBOL(zero_fill_bio);
EXPORT_SYMBOL(zero_fill_bio_iter);

/**
* bio_truncate - truncate the bio to small size of @new_size
Expand Down Expand Up @@ -1285,6 +1285,7 @@ void bio_set_pages_dirty(struct bio *bio)
set_page_dirty_lock(bvec->bv_page);
}
}
EXPORT_SYMBOL_GPL(bio_set_pages_dirty);

/*
* bio_check_pages_dirty() will check that all the BIO's pages are still dirty.
Expand Down Expand Up @@ -1344,6 +1345,7 @@ void bio_check_pages_dirty(struct bio *bio)
spin_unlock_irqrestore(&bio_dirty_lock, flags);
schedule_work(&bio_dirty_work);
}
EXPORT_SYMBOL_GPL(bio_check_pages_dirty);

static inline bool bio_remaining_done(struct bio *bio)
{
Expand Down
13 changes: 9 additions & 4 deletions block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,18 +219,23 @@ int blk_status_to_errno(blk_status_t status)
}
EXPORT_SYMBOL_GPL(blk_status_to_errno);

static void print_req_error(struct request *req, blk_status_t status,
const char *caller)
const char *blk_status_to_str(blk_status_t status)
{
int idx = (__force int)status;

if (WARN_ON_ONCE(idx >= ARRAY_SIZE(blk_errors)))
return;
return "(invalid error)";
return blk_errors[idx].name;
}
EXPORT_SYMBOL_GPL(blk_status_to_str);

static void print_req_error(struct request *req, blk_status_t status,
const char *caller)
{
printk_ratelimited(KERN_ERR
"%s: %s error, dev %s, sector %llu op 0x%x:(%s) flags 0x%x "
"phys_seg %u prio class %u\n",
caller, blk_errors[idx].name,
caller, blk_status_to_str(status),
req->rq_disk ? req->rq_disk->disk_name : "?",
blk_rq_pos(req), req_op(req), blk_op_str(req_op(req)),
req->cmd_flags & ~REQ_OP_MASK,
Expand Down
10 changes: 1 addition & 9 deletions drivers/md/bcache/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
config BCACHE
tristate "Block device as cache"
select CRC64
select CLOSURES
help
Allows a block device to be used as cache for other devices; uses
a btree for indexing and the layout is optimized for SSDs.
Expand All @@ -18,15 +19,6 @@ config BCACHE_DEBUG
Enables extra debugging tools, allows expensive runtime checks to be
turned on.

config BCACHE_CLOSURES_DEBUG
bool "Debug closures"
depends on BCACHE
select DEBUG_FS
help
Keeps all active closures in a linked list and provides a debugfs
interface to list them, which makes it possible to see asynchronous
operations that get stuck.

config BCACHE_ASYNC_REGISTRATION
bool "Asynchronous device registration (EXPERIMENTAL)"
depends on BCACHE
Expand Down
4 changes: 2 additions & 2 deletions drivers/md/bcache/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

obj-$(CONFIG_BCACHE) += bcache.o

bcache-y := alloc.o bset.o btree.o closure.o debug.o extents.o\
io.o journal.o movinggc.o request.o stats.o super.o sysfs.o trace.o\
bcache-y := alloc.o bset.o btree.o debug.o extents.o io.o\
journal.o movinggc.o request.o stats.o super.o sysfs.o trace.o\
util.o writeback.o features.o
2 changes: 1 addition & 1 deletion drivers/md/bcache/bcache.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@

#include <linux/bcache.h>
#include <linux/bio.h>
#include <linux/closure.h>
#include <linux/kobject.h>
#include <linux/list.h>
#include <linux/mutex.h>
Expand All @@ -192,7 +193,6 @@

#include "bset.h"
#include "util.h"
#include "closure.h"

struct bucket {
atomic_t pin;
Expand Down
1 change: 0 additions & 1 deletion drivers/md/bcache/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -2913,7 +2913,6 @@ static int __init bcache_init(void)
goto err;

bch_debug_init();
closure_debug_init();

bcache_is_reboot = false;

Expand Down
3 changes: 1 addition & 2 deletions drivers/md/bcache/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#define _BCACHE_UTIL_H

#include <linux/blkdev.h>
#include <linux/closure.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/sched/clock.h>
Expand All @@ -13,8 +14,6 @@
#include <linux/workqueue.h>
#include <linux/crc64.h>

#include "closure.h"

#define PAGE_SECTORS (PAGE_SIZE / 512)

struct closure;
Expand Down
1 change: 1 addition & 0 deletions fs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ source "fs/ocfs2/Kconfig"
source "fs/btrfs/Kconfig"
source "fs/nilfs2/Kconfig"
source "fs/f2fs/Kconfig"
source "fs/bcachefs/Kconfig"
source "fs/zonefs/Kconfig"

config FS_DAX
Expand Down
1 change: 1 addition & 0 deletions fs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ obj-$(CONFIG_OCFS2_FS) += ocfs2/
obj-$(CONFIG_BTRFS_FS) += btrfs/
obj-$(CONFIG_GFS2_FS) += gfs2/
obj-$(CONFIG_F2FS_FS) += f2fs/
obj-$(CONFIG_BCACHEFS_FS) += bcachefs/
obj-$(CONFIG_CEPH_FS) += ceph/
obj-$(CONFIG_PSTORE) += pstore/
obj-$(CONFIG_EFIVAR_FS) += efivarfs/
Expand Down
52 changes: 52 additions & 0 deletions fs/bcachefs/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@

config BCACHEFS_FS
tristate "bcachefs filesystem support"
depends on BLOCK
select EXPORTFS
select CLOSURES
select LIBCRC32C
select CRC64
select FS_POSIX_ACL
select LZ4_COMPRESS
select LZ4_DECOMPRESS
select ZLIB_DEFLATE
select ZLIB_INFLATE
select ZSTD_COMPRESS
select ZSTD_DECOMPRESS
select CRYPTO_SHA256
select CRYPTO_CHACHA20
select CRYPTO_POLY1305
select KEYS
select SIXLOCKS
select RAID6_PQ
select XOR_BLOCKS
select XXHASH
select SRCU
help
The bcachefs filesystem - a modern, copy on write filesystem, with
support for multiple devices, compression, checksumming, etc.

config BCACHEFS_QUOTA
bool "bcachefs quota support"
depends on BCACHEFS_FS
select QUOTACTL

config BCACHEFS_POSIX_ACL
bool "bcachefs POSIX ACL support"
depends on BCACHEFS_FS
select FS_POSIX_ACL

config BCACHEFS_DEBUG
bool "bcachefs debugging"
depends on BCACHEFS_FS
help
Enables many extra debugging checks and assertions.

The resulting code will be significantly slower than normal; you
probably shouldn't select this option unless you're a developer.

config BCACHEFS_TESTS
bool "bcachefs unit and performance tests"
depends on BCACHEFS_FS
help
Include some unit and performance tests for the core btree code
61 changes: 61 additions & 0 deletions fs/bcachefs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@

obj-$(CONFIG_BCACHEFS_FS) += bcachefs.o

bcachefs-y := \
alloc_background.o \
alloc_foreground.o \
bkey.o \
bkey_methods.o \
bkey_sort.o \
bset.o \
btree_cache.o \
btree_gc.o \
btree_io.o \
btree_iter.o \
btree_key_cache.o \
btree_update_interior.o \
btree_update_leaf.o \
buckets.o \
chardev.o \
checksum.o \
clock.o \
compress.o \
debug.o \
dirent.o \
disk_groups.o \
ec.o \
error.o \
extents.o \
extent_update.o \
fs.o \
fs-common.o \
fs-ioctl.o \
fs-io.o \
fsck.o \
inode.o \
io.o \
journal.o \
journal_io.o \
journal_reclaim.o \
journal_seq_blacklist.o \
keylist.o \
migrate.o \
move.o \
movinggc.o \
opts.o \
quota.o \
rebalance.o \
recovery.o \
reflink.o \
replicas.o \
siphash.o \
super.o \
super-io.o \
sysfs.o \
tests.o \
trace.o \
util.o \
varint.o \
xattr.o

bcachefs-$(CONFIG_BCACHEFS_POSIX_ACL) += acl.o
Loading