#
406d6d5a |
| 26-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Fix an error path race
On IO error, bch2_writepages_io_done() will set the page state to indicate nothing's already reserved (since the write didn't happen, we don't know what's already re
bcachefs: Fix an error path race
On IO error, bch2_writepages_io_done() will set the page state to indicate nothing's already reserved (since the write didn't happen, we don't know what's already reserved). This can race with the buffered IO path, in between getting a disk reservation and calling bch2_set_page_dirty().
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
2a9101a9 |
| 20-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Refactor bch2_trans_commit() path
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
a9440743 |
| 20-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Limit bios in writepages path to 256M
This works around a bug where bio_full() doesn't check for bio->bi_iter.bi_size overflowing - and, we don't really want to build bios that are that bi
bcachefs: Limit bios in writepages path to 256M
This works around a bug where bio_full() doesn't check for bio->bi_iter.bi_size overflowing - and, we don't really want to build bios that are that big anyways.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.4-rc3 |
|
#
9a3df993 |
| 09-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill bchfs_extent_update()
The generic IO path now handles inode updates for i_size and i_sectors - this means we can drop a fair amount of code from fs-io.c.
Signed-off-by: Kent Overstre
bcachefs: Kill bchfs_extent_update()
The generic IO path now handles inode updates for i_size and i_sectors - this means we can drop a fair amount of code from fs-io.c.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
2e87eae1 |
| 10-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Convert bch2_fpunch to bch2_extent_update()
As before - we're moving non Linux specific code out of fs-io.c.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
2925fc49 |
| 09-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Split out bchfs_extent_update()
The next few patches are going to be more moving the logic around i_size/i_sectors updates to io.c, and better separating the Linux VFS specific code from c
bcachefs: Split out bchfs_extent_update()
The next few patches are going to be more moving the logic around i_size/i_sectors updates to io.c, and better separating the Linux VFS specific code from core bcachefs code, to better support the fuse port.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
e0541a93 |
| 09-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill some dependencies on ei_inode
Moving bch2_extent_update() to io.c will be greatly simplified if we no longer have to keep ei_inode.bi_size/bi_sectors up to date.
Signed-off-by: Kent
bcachefs: Kill some dependencies on ei_inode
Moving bch2_extent_update() to io.c will be greatly simplified if we no longer have to keep ei_inode.bi_size/bi_sectors up to date.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
daf3fe50 |
| 09-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Check if extending inode differently
In bch2_extent_update(), we have to update the inode if i_size is changing (the file is being extend) or if i_sectors is changing, but we want to avoid
bcachefs: Check if extending inode differently
In bch2_extent_update(), we have to update the inode if i_size is changing (the file is being extend) or if i_sectors is changing, but we want to avoid touching the inode if it's not necessary.
Change sum_sector_overwrites() to also check if there's already data above where we're writing to - this means we're definitely not extending the file.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
3826ee0b |
| 09-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Add a lock to bch_page_state
We can't use the page lock to protect it, because on writeback IO error we need to access the page state before calling end_page_writeback() and the page lock
bcachefs: Add a lock to bch_page_state
We can't use the page lock to protect it, because on writeback IO error we need to access the page state before calling end_page_writeback() and the page lock semantics are completely insane so that deadlocks.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.4-rc2 |
|
#
137b0ed9 |
| 04-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: bch2_extent_atomic_end() now traverses iter
This fixes a bug in io.c bch2_write_index_default() - it was missing the traverse call, but bch2_extent_atomic_end returns an error now and can
bcachefs: bch2_extent_atomic_end() now traverses iter
This fixes a bug in io.c bch2_write_index_default() - it was missing the traverse call, but bch2_extent_atomic_end returns an error now and can just call it itself.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
58677a1d |
| 01-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: bch2_inode_peek()/bch2_inode_write()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
8de819f8 |
| 02-Oct-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Fix __bch2_buffered_write() returning -ENOMEM
When grab_cache_page_write_begin() fails but we did pin some pages, we shouldn't return -ENOMEM, we should do a partial write.
Signed-off-by:
bcachefs: Fix __bch2_buffered_write() returning -ENOMEM
When grab_cache_page_write_begin() fails but we did pin some pages, we shouldn't return -ENOMEM, we should do a partial write.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.4-rc1 |
|
#
64bc0011 |
| 27-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Rework btree iterator lifetimes
The btree_trans struct needs to memoize/cache btree iterators, so that on transaction restart we don't have to completely redo btree lookups, and so that we
bcachefs: Rework btree iterator lifetimes
The btree_trans struct needs to memoize/cache btree iterators, so that on transaction restart we don't have to completely redo btree lookups, and so that we can do them all at once in the correct order when the transaction had to restart to avoid a deadlock.
This switches the btree iterator lookups to work based on iterator position, instead of trying to match them up based on the stack trace.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
a7199432 |
| 23-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill deferred btree updates
Will be replaced by cached btree iterators
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
877dfb34 |
| 27-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Fix for partial buffered writes
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
bbd8d203 |
| 23-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: BTREE_ITER_SLOTS isn't a type of btree iter
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
d55460bb |
| 25-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Trivial cleanup
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
fb472ac5 |
| 24-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Convert a BUG_ON() to a warning
We shouldn't ever be writing past i_size - but, apparently there's still a bug to track down.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
0a426c32 |
| 22-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Handle bio_iov_iter_get_pages() returning unaligned bio
If the user buffer isn't aligned to the filesystem block size, on a large enough IO - where it won't fit into a single bio - bio_iov
bcachefs: Handle bio_iov_iter_get_pages() returning unaligned bio
If the user buffer isn't aligned to the filesystem block size, on a large enough IO - where it won't fit into a single bio - bio_iov_iter_get_pages() won't necessarily return a bio with the proper alignment.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.3, v5.3-rc8 |
|
#
5f786787 |
| 08-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Add support for FALLOC_FL_INSERT_RANGE
Somewhat tricky and ugly, because iterating over extents backwards is a pain.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
6cc3535d |
| 20-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Don't write past eof
When converting from PAGE_SIZE to block_size, the .mkwrite path was missed
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
Revision tags: v5.3-rc7, v5.3-rc6, v5.3-rc5, v5.3-rc4, v5.3-rc3, v5.3-rc2 |
|
#
63095894 |
| 22-Jul-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Improved bch2_fcollapse()
Move extents instead of copying them - this way, we can iterate over only live extents, not the entire keyspace. Also, this means we can mostly skip running trigg
bcachefs: Improved bch2_fcollapse()
Move extents instead of copying them - this way, we can iterate over only live extents, not the entire keyspace. Also, this means we can mostly skip running triggers.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
3fb5ebcd |
| 22-Aug-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Inline some fast paths
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
4b0a66d5 |
| 22-Aug-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Check alignment in write path
Also - fix alignment in bch2_set_page_dirty()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
76426098 |
| 16-Aug-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Reflink
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|