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: fix initial page state after falloc #249

Open
wants to merge 790 commits into
base: testing
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
790 commits
Select commit Hold shift + click to select a range
eedba9b
bcachefs: Kill reflink option
koverstreet Mar 15, 2021
0000eb6
bcachefs: Fix a btree iterator leak
koverstreet Mar 16, 2021
421c083
bcachefs: Kill btree_iter_pos_changed()
koverstreet Mar 16, 2021
68e2feb
bcachefs: Add a print statement for when we go read-write
koverstreet Mar 19, 2021
9ad857b
bcachefs: Don't list non journal devs in journal_debug_to_text()
koverstreet Mar 19, 2021
058bb7a
bcachefs: Fix btree iterator leak in extent_handle_overwrites()
koverstreet Mar 19, 2021
979db61
bcachefs: Fsck code refactoring
koverstreet Mar 20, 2021
049d47f
bcachefs: btree_iter_set_dontneed()
koverstreet Mar 20, 2021
521bd0b
bcachefs: Require all btree iterators to be freed
koverstreet Mar 20, 2021
012c691
bcachefs: Assert that iterators aren't being double freed
koverstreet Mar 20, 2021
f67ffc8
bcachefs: Kill bkey ops->debugcheck method
koverstreet Mar 20, 2021
a323cdd
bcachefs: Don't overwrite snapshot field in bch2_cut_back()
koverstreet Mar 19, 2021
931da4c
bcachefs: Validate bset version field against sb version fields
koverstreet Mar 21, 2021
0edf1f2
bcachefs: Don't unconditially version_upgrade in initialize
koverstreet Mar 21, 2021
2ea9ffb
bcachefs: Fix iterator picking
koverstreet Mar 21, 2021
cc34d11
bcachefs: Optimize bch2_btree_iter_verify_level()
koverstreet Mar 21, 2021
428d3b4
bcachefs: Switch extent_handle_overwrites() to one key at a time
koverstreet Mar 21, 2021
39cc509
bcachefs: Get disk reservation when overwriting data in old snapshot
koverstreet Mar 21, 2021
d500d73
bcachefs: Replace bch2_btree_iter_next() calls with bch2_btree_iter_a…
koverstreet Mar 21, 2021
db3cbc6
bcachefs: Have btree_iter_next_node() use btree_iter_set_search_pos()
koverstreet Mar 21, 2021
225f02f
bcachefs: Iterators are now always consistent with iter->real_pos
koverstreet Mar 21, 2021
ff0c3d1
bcachefs: Kill btree_iter_peek_uptodate()
koverstreet Mar 21, 2021
85624e5
bcachefs: Internal btree iterator renaming
koverstreet Mar 21, 2021
e7c28d3
bcachefs: Improve iter->real_pos handling
koverstreet Mar 21, 2021
04ec8e2
bcachefs: Consolidate bch2_btree_iter_peek() and peek_with_updates()
koverstreet Mar 21, 2021
2e33af1
bcachefs: Update iter->real_pos lazily
koverstreet Mar 22, 2021
bf1bf0e
bcachefs: Include snapshot field in bch2_bpos_to_text
koverstreet Mar 22, 2021
bde7a53
bcachefs: Add an .invalid method for bch2_btree_ptr_v2
koverstreet Mar 22, 2021
07d8dda
bcachefs: Improve inode deletion code
koverstreet Mar 22, 2021
468fd24
bcachefs: Split btree_iter_traverse and bch2_btree_iter_traverse()
koverstreet Mar 24, 2021
d59f2ad
six locks: pcpu mode
koverstreet Mar 23, 2021
cd2baf2
bcachefs: Use pcpu mode of six locks for interior nodes
koverstreet Mar 24, 2021
5a50b37
bcachefs: Increase default journal size
koverstreet Mar 25, 2021
5c4be3c
bcachefs: Drop bkey noops
koverstreet Mar 25, 2021
1b1a9f1
bcachefs: Generate better bkey formats when splitting nodes
koverstreet Mar 27, 2021
ca6b048
bcachefs: Fix building of aux search trees
koverstreet Mar 27, 2021
b631cfe
bcachefs: Fix packed bkey format calculation for new btree roots
koverstreet Mar 27, 2021
5d93ffc
bcachefs: Fix for bch2_trans_commit() unlocking when it's not suppose…
koverstreet Mar 28, 2021
70db49e
bcachefs: Simplify btree_node_iter_init_pack_failed()
koverstreet Mar 28, 2021
d2bd223
bcachefs: btree key cache locking improvements
koverstreet Mar 25, 2021
d4093fe
bcachefs: Add a mechanism for running callbacks at trans commit time
koverstreet Feb 4, 2021
7fcd041
bcachefs: Split out bpos_cmp() and bkey_cmp()
koverstreet Mar 4, 2021
59f91dc
bcachefs: Start using bpos.snapshot field
koverstreet Mar 24, 2021
dce08b8
bcachefs: Inode backpointers
koverstreet Mar 2, 2021
72b4e47
bcachefs: Change inode allocation code for snapshots
koverstreet Mar 15, 2021
e4330d5
bcachefs: Don't use bch2_inode_find_by_inum() in move.c
koverstreet Mar 16, 2021
249e369
bcachefs: Have journal reclaim thread flush more aggressively
koverstreet Mar 29, 2021
9d0c78d
bcachefs: Free iterator in bch2_btree_delete_range_trans()
koverstreet Mar 29, 2021
8cf350e
bcachefs: Add repair code for out of order keys in a btree node.
koverstreet Mar 29, 2021
35bdc29
bcachefs: Don't use write side of mark_lock in journal write path
koverstreet Mar 29, 2021
dbd952e
bcachefs: Don't make foreground writes wait behind journal reclaim to…
koverstreet Mar 31, 2021
b793e49
bcachefs: Move btree lock debugging to slowpath fn
koverstreet Mar 31, 2021
bd3556d
bcachefs: Improve bch2_trans_relock()
koverstreet Mar 31, 2021
adef29a
bcachefs: Add a sysfs var for average btree write size
koverstreet Apr 1, 2021
ab12eab
bcachefs: Improve bch2_btree_update_start()
koverstreet Mar 31, 2021
7fced03
bcachefs: Change where merging of interior btree nodes is trigger from
koverstreet Mar 31, 2021
a3eaa04
bcachefs: Kill bch2_btree_node_get_sibling()
koverstreet Mar 29, 2021
d123592
bcachefs: bch2_foreground_maybe_merge() now correctly reports lock re…
koverstreet Mar 31, 2021
d07cd98
bcachefs: Move btree node merging to before transaction commit
koverstreet Mar 29, 2021
b7d0089
bcachefs: Drop trans->nounlock
koverstreet Mar 31, 2021
a8e31da
bcachefs: Fix BTREE_FOREGROUND_MERGE_HYSTERESIS
koverstreet Mar 31, 2021
73f5bec
bcachefs: Increase commality between BTREE_ITER_NODES and BTREE_ITER_…
koverstreet Apr 3, 2021
fabc03e
bcachefs: Fix this_cpu_ptr() usage
koverstreet Apr 3, 2021
5eab6d0
bcachefs: Fix journal deadlock
koverstreet Apr 3, 2021
dba55ed
bcachefs: Be more careful about JOURNAL_RES_GET_RESERVED
koverstreet Apr 3, 2021
30702f5
bcachefs: Fix livelock calling bch2_mark_bkey_replicas()
koverstreet Apr 3, 2021
4943edb
bcachefs: Kill bch2_fs_usage_scratch_get()
koverstreet Apr 4, 2021
286fc36
bcachefs: Drop some memset() calls
koverstreet Apr 4, 2021
1e770a8
bcachefs: Eliminate memory barrier from fast path of journal_preres_p…
koverstreet Apr 4, 2021
2727dfd
bcachefs: kill bset_tree->max_key
koverstreet Apr 4, 2021
deb4a39
bcachefs: Fix an uninitialized variable
koverstreet Apr 5, 2021
90d466b
bcachefs: Fix a startup race
koverstreet Apr 5, 2021
e25900e
bcachefs: Increase BSET_CACHELINE to 256 bytes
koverstreet Apr 6, 2021
36c5c04
bcachefs: Eliminate more PAGE_SIZE uses
koverstreet Apr 6, 2021
4057252
bcachefs: Don't flush btree writes more aggressively because of btree…
koverstreet Apr 1, 2021
d52ce23
bcachefs: Improve bset compaction
koverstreet Apr 6, 2021
7fec8d1
bcachefs: Move some dirent checks to bch2_dirent_invalid()
koverstreet Apr 7, 2021
5376e51
bcachefs: Drop bch2_fsck_inode_nlink()
koverstreet Apr 7, 2021
35d81ef
bcachefs: Don't wait for ALLOC_SCAN_BATCH buckets in allocator
koverstreet Apr 8, 2021
b9d4589
bcachefs: Make sure to kick journal reclaim when we're waiting on it
koverstreet Apr 8, 2021
01f1ade
bcachefs: Fix bch2_gc_btree_gens()
koverstreet Apr 9, 2021
b733225
bcachefs: Fix BTREE_ITER_NOT_EXTENTS
koverstreet Apr 9, 2021
4c64e2b
bcachefs: Check inodes at start of fsck
koverstreet Apr 7, 2021
6057971
bcachefs: Simplify hash table checks
koverstreet Apr 7, 2021
0e23fa0
bcachefs: Inode backpointers are now required
koverstreet Apr 7, 2021
d5b43e4
bcachefs: Redo check_nlink fsck pass
koverstreet Apr 8, 2021
39707d0
bcachefs: Fix bch2_trans_relock()
koverstreet Apr 12, 2021
d4bd08f
bcachefs: Fix fsck to not use bch2_link_trans()
koverstreet Apr 9, 2021
6c6afe5
bcachefs: Improved check_directory_structure()
koverstreet Apr 7, 2021
347af01
bcachefs: BCH_BEATURE_atomic_nlink is obsolete
koverstreet Apr 13, 2021
0c46dbc
bcachefs: Fix heap overrun in bch2_fs_usage_read()
koverstreet Apr 13, 2021
477d145
bcachefs: Add the status of bucket gen gc to sysfs
koverstreet Apr 13, 2021
3ccd45e
bcachefs: Ensure bucket gen gc completes
koverstreet Apr 13, 2021
41ca62f
bcachefs: Add a perf test for multiple updates per commit
koverstreet Apr 14, 2021
41dc38a
bcachefs: Drop old style btree node coalescing
koverstreet Apr 14, 2021
e455701
bcachefs: Better iterator picking
koverstreet Apr 14, 2021
5faab1e
bcachefs: Don't call bch2_btree_iter_traverse() unnecessarily
koverstreet Apr 14, 2021
c27e507
bcachefs: Fix bch2_gc_done() error messages
koverstreet Apr 15, 2021
b96cc2a
bcachefs: Fix journal_reclaim_wait_done()
koverstreet Apr 15, 2021
c757af5
bcachefs: Improve bch2_btree_iter_traverse_all()
koverstreet Apr 14, 2021
7a5f402
bcachefs: Don't downgrade iterators in bch2_trans_get_iter()
koverstreet Apr 15, 2021
6fa9de4
bcachefs: Improve trans_restart_mem_realloced tracepoint
koverstreet Apr 15, 2021
26b30ff
bcachefs: Fix bch2_trans_mark_dev_sb()
koverstreet Apr 15, 2021
8ac7aa6
bcachefs: Simplify bch2_set_nr_journal_buckets()
koverstreet Apr 15, 2021
9db1d69
bcachefs: Fix an RCU splat
koverstreet Apr 15, 2021
4825894
bcachefs: Fix journal reclaim loop
koverstreet Apr 16, 2021
07f4cd4
bcachefs: Fix transaction restarts due to upgrading of cloned iterators
koverstreet Apr 16, 2021
916e58e
bcachefs: Simplify fsck remove_dirent()
koverstreet Apr 16, 2021
0c8095a
bcachefs: Fix some small memory leaks
koverstreet Apr 16, 2021
57ed8d4
bcachefs: Fix an unused var warning in userspace
koverstreet Apr 16, 2021
10efd18
bcachefs: Refactor bchfs_fallocate() to not nest btree_trans on stack
koverstreet Apr 17, 2021
313de79
bcachefs: gc shouldn't care about owned_by_allocator
koverstreet Apr 17, 2021
060014b
bcachefs: Allocator thread doesn't need gc_lock anymore
koverstreet Apr 17, 2021
6bc7f61
bcachefs: Handle errors in bch2_trans_mark_update()
koverstreet Apr 18, 2021
d38e9dc
bcachefs: Check that keys are in the correct btrees
koverstreet Apr 18, 2021
8cd33be
bcachefs: Always check for invalid bkeys in trans commit path
koverstreet Apr 18, 2021
e3f7424
bcachefs: Allocator refactoring
koverstreet Apr 18, 2021
158d369
bcachefs: Preallocate trans mem in bch2_migrate_index_update()
koverstreet Apr 19, 2021
69f0715
bcachefs: Fix for btree_gc repairing interior btree ptrs
koverstreet Apr 19, 2021
1e54da2
bcachefs: Fix a use after free
koverstreet Apr 19, 2021
01a132c
bcachefs: Punt btree writes to workqueue to submit
koverstreet Apr 6, 2021
2ba9ed8
bcachefs: Fix two btree iterator leaks
koverstreet Apr 21, 2021
0f8d9cc
bcachefs: Update bch2_btree_verify()
koverstreet Apr 21, 2021
4d4c2d4
bcachefs: Fix a deadlock on journal reclaim
koverstreet Apr 20, 2021
0f21481
bcachefs: Don't BUG() in update_replicas
koverstreet Apr 21, 2021
4702d58
bcachefs: Lookup/create lost+found lazily
koverstreet Apr 20, 2021
168ef9a
bcachefs: Fix repair leading to replicas not marked
koverstreet Apr 23, 2021
dbfd061
bcachefs: Don't BUG_ON() btree topology error
koverstreet Apr 23, 2021
cb8ce5d
bcachefs: Add a mempool for btree_trans bump allocator
koverstreet Apr 24, 2021
dcc5355
bcachefs: Add a mempool for the replicas delta list
koverstreet Apr 24, 2021
9d43018
bcachefs: Use mmap() instead of vmalloc_exec() in userspace
koverstreet Apr 24, 2021
c1a5b6a
bcachefs: Fix an out of bounds read
koverstreet Apr 24, 2021
6cf32da
bcachefs: Fix bch2_verify_keylist_sorted
koverstreet Apr 24, 2021
ea18900
bcachefs: Rewrite btree nodes with errors
koverstreet Apr 24, 2021
a4ba17b
bcachefs: New helper __bch2_btree_insert_keys_interior()
koverstreet Apr 23, 2021
f75c5b4
bcachefs: Fix key cache assertion
koverstreet Apr 24, 2021
52a4d56
bcachefs: New and improved topology repair code
koverstreet Apr 24, 2021
145bc3d
bcachefs: Fix a null ptr deref
koverstreet Apr 25, 2021
6500938
bcachefs: New check_nlinks algorithm for snapshots
koverstreet Apr 22, 2021
9e1839a
bcachefs: Evict btree nodes we're deleting
koverstreet Apr 25, 2021
1b39f7d
bcachefs: Fix __bch2_trans_get_iter()
koverstreet Apr 27, 2021
55fe3d4
bcachefs: New tracepoint for bch2_trans_get_iter()
koverstreet Apr 29, 2021
e137126
bcachefs: Call bch2_inconsistent_error() on missing stripe/indirect e…
koverstreet Apr 30, 2021
b34ec71
bcachefs: Change bch2_btree_key_cache_count() to exclude dirty keys
koverstreet Apr 27, 2021
7b08c8b
bcachefs: Change copygc wait amount to be min of per device waits
koverstreet Apr 27, 2021
3c22d04
bcachefs: Enable .splice_write
koverstreet Apr 27, 2021
31bbad5
bcachefs: Ensure that fpunch updates inode timestamps
koverstreet Apr 28, 2021
e29207a
bcachefs: Make sure to initialize j->last_flushed
koverstreet Apr 29, 2021
1766ac8
bcachefs: Add a tracepoint for when we block on journal reclaim
koverstreet Apr 29, 2021
cffbbe7
bcachefs: Fix time handling
koverstreet Apr 29, 2021
1b2a38b
bcachefs: Mark newly allocated btree nodes as accessed
koverstreet Apr 29, 2021
9b5ed4f
bcachefs: Clean up bch2_btree_and_journal_walk()
koverstreet Apr 29, 2021
45f2043
bcachefs: Fix usage of last_seq + encryption
koverstreet May 8, 2021
b8b5ae0
bcachefs: Fix oob write in __bch2_btree_node_write
dlrobertson May 8, 2021
733f2e9
bcachefs: Fix some refcounting bugs
koverstreet May 8, 2021
e478e21
bcachefs: Fix reflink trigger
koverstreet May 4, 2021
7083c94
bcachefs: Fix bch2_btree_iter_peek_with_updates()
koverstreet Apr 30, 2021
d7808dd
bcachefs: Make sure to use BTREE_ITER_PREFETCH in fsck
koverstreet May 14, 2021
9ee502c
bcachefs: avoid out-of-bounds in split_devs
stintel May 13, 2021
2a0d803
bcachefs: Fix error in parsing of mount options
dlrobertson May 9, 2021
8f02ea1
bcachefs: Fix possible null deref on mount
dlrobertson May 12, 2021
4c7ae97
bcachefs: Fix null deref in bch2_ioctl_read_super
dlrobertson May 13, 2021
c7e8d12
bcachefs: Fix out of bounds read in fs usage ioctl
dlrobertson May 5, 2021
edbffcf
bcachefs: Repair code for multiple types of data in same bucket
koverstreet May 15, 2021
64a2827
bcachefs: properly initialize used values
dlrobertson May 15, 2021
13b2b40
bcachefs: Fix locking in __bch2_set_nr_journal_buckets()
koverstreet May 17, 2021
b2a642a
bcachefs: made changes to support clang, fixed a couple bugs
holmanb May 17, 2021
996f94c
bcachefs: Make sure to pass a disk reservation to bch2_extent_update()
koverstreet May 17, 2021
6f96270
bcachefs: Fix bch2_extent_can_insert() call
koverstreet May 17, 2021
8b95065
bcachefs: Fix a memcpy call
koverstreet May 17, 2021
007fef9
bcachefs: Fix for bch2_bkey_pack_pos() not initializing len/version f…
koverstreet May 17, 2021
7e54fc8
bcachefs: statfs resports incorrect avail blocks
dlrobertson May 19, 2021
9ff85d2
bcachefs: Move io_in_flight ratelimiting to fs-io.c
koverstreet May 19, 2021
821cc23
bcachefs: Split extents if necessary in bch2_trans_update()
koverstreet May 19, 2021
7439d73
bcachefs: Make bch2_remap_range respect O_SYNC
koverstreet May 20, 2021
69fff7b
bcachefs: Fix inode backpointers in RENAME_OVERWRITE
koverstreet May 20, 2021
60bbb53
bcachefs: Fix for buffered writes getting -ENOSPC
koverstreet May 20, 2021
5190b9f
bcachefs: Fix an uninitialized var
koverstreet May 21, 2021
ad96f40
bcachefs: Don't repair btree nodes until after interior journal repla…
koverstreet May 21, 2021
c52d87d
bcachefs: Add a debug mode that always reads from every btree replica
koverstreet May 22, 2021
befc457
bcachefs: rewrote prefetch asm in gas syntax for clang compatibility
holmanb May 21, 2021
395fc34
bcachefs: Add a workqueue for btree io completions
koverstreet May 22, 2021
ed68469
bcachefs: Improve FS_IOC_GOINGDOWN ioctl
koverstreet May 23, 2021
a97786d
bcachefs: Fix an issue with inconsistent btree writes after unclean s…
koverstreet May 23, 2021
bae26d0
bcachefs: Fix a null ptr deref
koverstreet May 23, 2021
3ee65ca
bcachefs: Add a cond_resched call to the copygc main loop
koverstreet May 25, 2021
863a13a
bcachefs: Add a tracepoint for copygc waiting
koverstreet May 26, 2021
5d7af0d
bcachefs: Don't use uuid in tracepoints
koverstreet May 27, 2021
3d30afa
bcachefs: Add an option to control sharding new inode numbers
koverstreet May 28, 2021
0a33d62
bcachefs: Reflink refcount fix
koverstreet May 28, 2021
e2085a3
bcachefs: Fix journal write error path
koverstreet May 28, 2021
ae8b7c9
bcachefs: Fix pathalogical behaviour with inode sharding by cpu ID
koverstreet May 28, 2021
de0c6e3
bcachefs: Split out btree_error_wq
koverstreet May 28, 2021
6435a72
bcachefs: Fix a deadlock
koverstreet May 26, 2021
8d273c8
bcachefs: Assorted endianness fixes
koverstreet May 23, 2021
0c6d9ae
bcachefs: Fsck for reflink refcounts
koverstreet May 23, 2021
dc021d9
bcachefs: Don't fragment extents when making them indirect
koverstreet Mar 21, 2021
b9d973d
bcachefs: Journal space calculation fix
koverstreet May 31, 2021
9e3db6f
bcachefs; Check for allocator thread shutdown
koverstreet Jun 1, 2021
810c3ce
bcachefs: Check for errors from bch2_trans_update()
koverstreet Jun 2, 2021
a0750e0
bcachefs: Preallocate transaction mem
koverstreet Jun 3, 2021
eddf0c7
bcachefs: Improve btree iterator tracepoints
koverstreet Jun 4, 2021
fb80180
bcachefs: btree_iter->should_be_locked
koverstreet Jun 4, 2021
2ce5d8e
bcachefs: do not compile acl mod on minimal config
dlrobertson Jun 5, 2021
8069a2f
bcachefs: Fix unitialized use of a value
holmanb Jun 6, 2021
86c48b6
bcachefs: Fix a spurious debug mode assertion
koverstreet Jun 8, 2021
e6acff9
bcachefs: Don't mark superblocks past end of usable space
koverstreet Jun 9, 2021
cc5002f
bcachefs: Fix a buffer overrun
koverstreet Jun 10, 2021
9c79512
bcachefs: More topology repair code
koverstreet Jun 7, 2021
701b9bd
bcachefs: Drop all btree locks when submitting btree node reads
koverstreet Apr 9, 2021
f2309da
bcachefs: Child btree iterators
koverstreet Mar 20, 2021
22dff78
bcachefs: BTREE_ITER_WITH_UPDATES
koverstreet Jun 4, 2021
f85b069
bcachefs: Move extent_handle_overwrites() to bch2_trans_update()
koverstreet Jun 2, 2021
4dd2810
bcachefs: Simplify reflink trigger
koverstreet Jun 7, 2021
14d6699
bcachefs: Kill trans->updates2
koverstreet Jun 7, 2021
3ce082f
bcachefs: Clean up key merging
koverstreet Apr 29, 2021
7f6e5ae
bcachefs: Re-implement extent merging in transaction commit path
koverstreet Apr 29, 2021
3f1bf37
bcachefs: Improved extent merging
koverstreet May 15, 2021
161ef31
bcachefs: Merging for indirect extents
koverstreet May 15, 2021
69be0da
bcachefs: Always zero memory from bch2_trans_kmalloc()
koverstreet Jun 7, 2021
95fc50b
bcachefs: Fix overflow in journal_replay_entry_early
koverstreet Jun 11, 2021
484f2c4
fixup! bcachefs: More topology repair code
koverstreet Jun 11, 2021
bbadb5e
bcachefs: Fix null ptr deref when splitting compressed extents
koverstreet Jun 12, 2021
78779c3
bcachefs: mount: fix null deref with null devname
dlrobertson Jun 10, 2021
b00cf89
bcachefs: Allow shorter JSET_ENTRY_dev_usage entries
koverstreet Jun 12, 2021
9e9ad82
bcachefs: Kill bch2_btree_iter_peek_cached()
koverstreet Jun 11, 2021
936a644
bcachefs: Don't underflow c->sectors_available
koverstreet Jun 11, 2021
f1c2b21
bcachefs: Clear iter->should_be_locked in bch2_trans_reset
koverstreet Jun 13, 2021
a881a9c
bcachefs: fix a possible bcachefs checksum mapping error opt-checksum…
jpsollie Jun 13, 2021
3902501
bcachefs: Fix a memory leak in dio write path
koverstreet Jun 14, 2021
32de9f8
bcachefs: Make sure bch2_trans_mark_update uses correct iter flags
koverstreet Jun 14, 2021
e9761f8
bcachefs: Kill __btree_delete_at()
koverstreet Jun 14, 2021
ee8c024
bcachefs: Improve iter->should_be_locked
koverstreet Jun 14, 2021
3e0a69c
fixup! bcachefs: Improve iter->should_be_locked
koverstreet Jun 15, 2021
e256ef2
bcachefs: fix truncate with ATTR_MODE
koverstreet Jun 15, 2021
95ab81d
bcachefs: Extensive triggers cleanups
koverstreet Jun 11, 2021
bf09fd4
bcachefs: Don't disable preemption unnecessarily
koverstreet Jun 11, 2021
154c7c7
fixup! bcachefs: More topology repair code
koverstreet Jun 16, 2021
4cc1334
fixup! bcachefs: More topology repair code
koverstreet Jun 17, 2021
1a54de9
bcachefs: ensure iter->should_be_locked is set
dlrobertson Jun 17, 2021
39ad803
bcachefs: Don't ratelimit certain fsck errors
koverstreet Jun 21, 2021
775b36b
bcachefs: Start journal reclaim thread earlier
koverstreet Jun 21, 2021
0df0b04
fixup! bcachefs: More topology repair code
koverstreet Jun 17, 2021
1054926
bcachefs: Don't loop into topology repair
koverstreet Jun 23, 2021
49e4c3b
bcachefs: Fix btree_node_read_all_replicas() error handling
koverstreet Jun 23, 2021
ca3cfad
fixup! bcachefs: Improve iter->should_be_locked
koverstreet Jun 15, 2021
cec8dcc
bcachefs: Fix shift-by-64 in bch2_bkey_format_validate()
koverstreet Jun 24, 2021
c7dea9c
bcachefs: statfs bfree and bavail should be the same
dlrobertson Jun 23, 2021
21578ad
bcachefs: Fix bch2_acl_chmod() cleanup on error
dlrobertson Jun 24, 2021
3fe6e97
bcachefs: fix initial page state after falloc
dlrobertson Jun 17, 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
2 changes: 2 additions & 0 deletions block/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1322,6 +1322,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 @@ -1381,6 +1382,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 @@ -129,6 +129,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
51 changes: 51 additions & 0 deletions fs/bcachefs/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

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 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