summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-31radix tree: __radix_tree_create2Kent Overstreet
2018-08-31fs: kill add_to_page_cache_locked()Kent Overstreet
No longer has any users, so remove it
2018-08-31cifs: convert to add_to_page_cache()Kent Overstreet
2018-08-31fix a page refcount bugKent Overstreet
2018-08-31mm: optimize __do_page_cache_readahead()Kent Overstreet
2018-08-31bcachefs: make fsck spew lessKent Overstreet
2018-08-31bcachefs: don't select COMPACTIONKent Overstreet
2018-08-21bcachefs: Dirent repair codeKent Overstreet
There was a bug for awhile in previous kernels where we weren't computing dirent name lengths correctly and we weren't zeroing out padding at the end of dirents (due to struct bch_dirent changing size by adding __attribute__((aligned)), and not updating other code to use offsetof). This patch fixes dirents with junk at the end, by going off of the dirent's hash. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-21bcachefs: Fix a btree iter bug when iter pos == POS_MAXKent Overstreet
2018-08-21bcachefs: Comparison function cleanupsKent Overstreet
2018-08-21bcachefs: Prioritize fragmentation in bucket allocatorKent Overstreet
2018-08-15fs: generic_file_buffered_read() now uses find_get_pages_contigKent Overstreet
Convert generic_file_buffered_read() to get pages to read from in batches, and then copy data to userspace from many pages at once - in particular, we now don't touch any cachelines that might be contended while we're in the loop to copy data to userspace. This is is a performance improvement on workloads that do buffered reads with large blocksizes, and a very large performance improvement if that file is also being accessed concurrently by different threads. On smaller reads (512 bytes), there's a very small performance improvement (1%, within the margin of error). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-15fs: Break generic_file_buffered_read up into multiple functionsKent Overstreet
This is prep work for changing generic_file_buffered_read() to use find_get_pages_contig() to batch up all the pagecache lookups. This patch should be functionally identical to the existing code and changes as little as of the flow control as possible. More refactoring could be done, this patch is intended to be relatively minimal. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: pass around bset_tree lessKent Overstreet
2018-08-12bcachefs: kill extent_insert_hookKent Overstreet
2018-08-12bcachefs: kill i_sectors_hookKent Overstreet
2018-08-12bcachefs: convert fcollapse to bch2_extent_update()Kent Overstreet
2018-08-12bcachefs: convert fpunch to bch2_extent_update()Kent Overstreet
2018-08-12bcachefs: convert truncate to bch2_extent_update()Kent Overstreet
2018-08-12bcachefs: convert bchfs_write_index_update() to bch2_extent_update()Kent Overstreet
2018-08-12bcachefs: bch2_extent_trim_atomic()Kent Overstreet
Prep work for extents insert hook removal
2018-08-12bcachefs: mempoolify btree_transKent Overstreet
2018-08-12bcachefs: Fix build when CONFIG_BCACHEFS_DEBUG=nKent Overstreet
2018-08-12bcachefs: BTREE_INSERT_JOURNAL_RES_FULL is no longer possibleKent Overstreet
2018-08-12bcachefs: extent_squash() can no longer failKent Overstreet
2018-08-12bcachefs: make struct btree_iter a bit smallerKent Overstreet
2018-08-12bcachefs: lift ordering restriction on 0 size extentsKent Overstreet
This lifts the restriction that 0 size extents must not overlap with other extents, which means we can now sort extents and non extents the same way, and will let us simplify a bunch of other stuff as well. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: extent unit testsKent Overstreet
2018-08-12bcachefs: bkey_written()Kent Overstreet
also cleanups of btree node offsets
2018-08-12bcachefs: improved rw_aux_tree_bsearch()Kent Overstreet
shouldn't be any reason for an actual binary search here
2018-08-12bcachefs: Factor out btree_key_can_insert()Kent Overstreet
working on getting rid of all the reasons bch2_insert_fixup_extent() can fail/stop partway, which is needed for other refactorings. One of the reasons we could have to bail out is if we're splitting a compressed extent we might need to add to our disk reservation - but we can check that before actually starting the insert.
2018-08-12bcachefs: BCH_SB_RESERVE_BYTESKent Overstreet
Add an option, gc_reserve_bytes, to set the copygc reserve as a size instead of a percent Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: Better calculation of copygc thresholdKent Overstreet
2018-08-12bcachefs: Change how replicated data is accountedKent Overstreet
Due to compression, the different replicas of a replicated extent don't necessarily have to take up the same amount of space - so replicated data sector counts shouldn't be stored divided by the number of replicas.
2018-08-12bcachefs: Account for internal fragmentation betterKent Overstreet
2018-08-12bcachefs: kill s_alloc, use bch_data_typeKent Overstreet
2018-08-12bcachefs: bch2_mark_key() now takes bch_data_typeKent Overstreet
2018-08-12bcachefs: Fix an assertion in the btree node merge pathKent Overstreet
2018-08-12bcachefs: Fix locking in allocator threadKent Overstreet
gc lock must be held while invalidating buckets - fixes "1f7a95698e bcachefs: Invalidate buckets when writing to alloc btree" Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: fix bch2_val_to_text()Kent Overstreet
was returning wrong value
2018-08-12bcachefs: minor fsync fixKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: Assorted journal refactoringKent Overstreet
Also improve error reporting - only return an error from bch2_journal_flush_seq() if we had an error writing that entry (i.e. not if there was an error with a newer entry). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: fix last_seq_ondiskKent Overstreet
2018-08-12bcachefs: fix mtime/ctime update on truncateKent Overstreet
2018-08-12bcachefs: fix fsync after createKent Overstreet
2018-08-12bcachefs: fix nbuckets usage on device resizeKent Overstreet
2018-08-12bcachefs: Invalidate buckets when writing to alloc btreeKent Overstreet
Prep work for persistent alloc information. Refactoring also lets us make free_inc much smaller, which means a lot fewer buckets stranded on freelists.
2018-08-12bcachefs: kill bucket mark sector count saturationKent Overstreet
2018-08-12bcachefs: don't call bch2_bucket_seq_cleanup from journal_buf_switchKent Overstreet
journal_buf_switch is called from the foreground when getting a journal reservation and thus is somewhat latency sensitive; bch2_bucket_seq_cleanup has to run infrequently but is a bit expensive when it does run. Call it from the journal write path instead, and punt the journal write to worqueue context. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-08-12bcachefs: Fix an assertionKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>