summaryrefslogtreecommitdiff
path: root/fs/bcachefs/fs-io.c
AgeCommit message (Collapse)Author
2018-07-01bcachefs: don't expose extent whiteouts outside of btree codeKent Overstreet
2018-06-03bcachefs: fix a minor fsync bugKent Overstreet
2018-06-03bcachefs: fix a fun truncate bugKent Overstreet
truncate was leaving extents past the end of i_size. Turns out, it was doing so because it thought it wasn't shrinking the file when it was, and it thought it wasn't shrinking because i_size had gotten screwed up - the in memory i_size was smaller than the on disk i_size, which is never supposed to happen. Also turns out, the thing that was screwing up i_size was truncate - specifically, the error path when the filemap_write_and_wait_range() call fails. Besides fixing truncate itself, this patch also fixes and makes rigorous a lot of the locking pertaining to i_size and ei_inode (the cached on disk inode in bch_inode_info). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-06-01bcachefs: fix error path in fallocateKent Overstreet
2018-06-01bcachefs: fcollapse works on block granularity, not pageKent Overstreet
2018-06-01bcachefs: fix an error path in fcollapseKent Overstreet
2018-06-01bcachefs: fix dio write when faulting in from file we're writing toKent Overstreet
2018-05-22bcachefs: dio read path fixKent Overstreet
generic_file_read_iter() gets _really_ confused by the iov iter being truncated...
2018-05-22bcachefs: fixes for 32 bit/big endian machinesKent Overstreet
2018-05-22bcachefs: fix assorted sparse-ismsKent Overstreet
2018-05-22bcachefs: New time stats code (with quantiles)Kent Overstreet
2018-05-22bcachefs: buffered write path optimizationKent Overstreet
2018-05-22bcachefs: fix a page flags bugKent Overstreet
2018-05-22bcachefs: Fix a locking bugKent Overstreet
bch2_releasepage() can't take locks that are held while allocating memory, unless GFP_NOFS is used - ei_update_lock is held while calling into btree code that uses GFP_NOIO
2018-05-22bcachefs: Centralize error handling in read pathKent Overstreet
prep work for erasure coding - need to plumb in reconstruct reads
2018-05-22bcachefs: convert BUG_ON()s to warningsKent Overstreet
also refactor extents update path a bit, and a possible fix for the bug observed by the assertion in fs-io.c
2018-05-22bcachefs: drop writeback throttling codeKent Overstreet
block layer has throttling now
2018-05-22bcachefs: Convert tiering/promote code to disk groupsKent Overstreet
2018-05-22bcachefs: fixes for check_set_has_compressed_data()Kent Overstreet
2018-05-22bcachefs: zstd support, compression refactoringKent Overstreet
2018-05-22bcachefs: use reserve when open buckets pinnedKent Overstreet
2018-05-22bcachefs: -o verbose_init, more error messagesKent Overstreet
for tracing problems with mount
2018-05-22bcachefs: optimize bch2_btree_iter_traverse() callsKent Overstreet
Reduce unnecessary calls, and also call it from bch2_btree_insert_at() when needed Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-05-22bcachefs: btree_iter_next()/btree_iter_next_slot()Kent Overstreet
previously, bch2_btree_iter_advance_pos() would use iter->k to calculate the next iterator position, assuming iter->k had been set by bch2_btree_iter_peek()/peek_with_holes(); this was busted because it was possible in certain codepaths to call bch2_btree_iter_advance_pos() when either iter->k hadn't been initialized, or bch2_btree_iter_traverse() -> btree_iter_down() had scribbled over it. This gets rid of bch2_btree_iter_advance_pos, in favor of bch2_btree_iter_next() and bche_btree_iter_next_slot(), which both just call peek() internall if the iterator isn't uptodate. It's a performance improvement, too. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-05-22bcachefs: quota limit enforcementKent Overstreet
2018-05-22bcachefs: don't call page_state_cmpxchg() from bch2_writepage_io_done()Kent Overstreet
it'll make things saner if we can only touch page state under page lock
2018-05-22bcachefs: bch2_disk_reservation_init()Kent Overstreet
also fix another bug with reservation nr_replicas being used inconsistently
2018-05-22bcachefs: fixes for buffered io & replicationKent Overstreet
2018-05-22bcachefs: organize fs-io.c a bit betterKent Overstreet
2018-05-22bcachefs: Quota accountingKent Overstreet
2018-05-22bcachefs: dio write path improvementsKent Overstreet
fix a few minor bugs, hopefully make the flow control easier to follow
2018-05-22bcachefs: fix unitialized bch_read_bioKent Overstreet
2018-05-22bcachefs: fix dio write path with replication enabledKent Overstreet
2018-05-22bcachefs: i_blocks acct refactoringKent Overstreet
2018-05-22bcachefs: more trivial refactoringKent Overstreet
2018-05-22bcachefs: Add io policy fields to inodesKent Overstreet
2018-05-22bcachefs: make dio writes to fallocated space not return -ENOSPCKent Overstreet
2018-05-22bcachefs: kill extent_insert_hookKent Overstreet
this is to make it possible to return -ENOSPC from the extent insert hook
2018-05-22bcachefs: Add mechanism to exclude devices to allocate fromKent Overstreet
2018-05-22bcachefs: Kill foreground write ratelimitingKent Overstreet
this code won't work with the new disk groups approach, and it wasn't all that useful anyways
2018-05-22bcachefs: inject some faults, add some assertionsKent Overstreet
2018-05-22bcachefs: Bring back dedicated write points for copygcKent Overstreet
they were required to prevent the copygc reserve from being used by other writes
2018-05-22bcachefs: struct bch_extent_crc_unpackedKent Overstreet
2018-05-22bcachefs: Make write points more dynamicKent Overstreet
2018-05-22bcachefs: rename ei -> inodeKent Overstreet
2018-05-22bcachefs: pass around struct bch_inode_info *, not struct inode *Kent Overstreet
2018-05-22bcachefs: rename bch_inode_info fieldsKent Overstreet
2018-05-22bcachefs: rename bch_inode fieldsKent Overstreet
2018-05-22bcachefs: Fix some locking bugsKent Overstreet
2018-05-22bcachefs: Cleanups for building in userspaceKent Overstreet