mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
btrfs: remove unnecessary @nr_written parameters
We use @nr_written to record how many pages have been started by
btrfs_run_delalloc_range().
Currently there are only two cases that would populate @nr_written:
- Inline extent creation
- Compressed write
But both cases will also set @page_started to one.
In fact, in writepage_delalloc() we have the following code, showing
that @nr_written is really only utilized for above two cases:
/* did the fill delalloc function already unlock and start
* the IO?
*/
if (page_started) {
/*
* we've unlocked the page, so we can't update
* the mapping's writeback index, just update
* nr_to_write.
*/
wbc->nr_to_write -= nr_written;
return 1;
}
But for such cases, writepage_delalloc() will return 1, and exit
__extent_writepage() without going through __extent_writepage_io().
Thus this means, inside __extent_writepage_io(), we always get
@nr_written as 0.
So this patch is going to remove the unnecessary parameter from the
following functions:
- writepage_delalloc()
As @nr_written passed in is always the initial value 0.
Although inside that function, we still need a local @nr_written
to update wbc->nr_to_write.
- __extent_writepage_io()
As explained above, @nr_written passed in can only be 0.
This also means we can remove one update_nr_written() call.
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
9270501c16
commit
83f1b68002
|
|
@ -3785,12 +3785,13 @@ static void update_nr_written(struct writeback_control *wbc,
|
|||
* This returns < 0 if there were errors (page still locked)
|
||||
*/
|
||||
static noinline_for_stack int writepage_delalloc(struct btrfs_inode *inode,
|
||||
struct page *page, struct writeback_control *wbc,
|
||||
unsigned long *nr_written)
|
||||
struct page *page, struct writeback_control *wbc)
|
||||
{
|
||||
const u64 page_end = page_offset(page) + PAGE_SIZE - 1;
|
||||
u64 delalloc_start = page_offset(page);
|
||||
u64 delalloc_to_write = 0;
|
||||
/* How many pages are started by btrfs_run_delalloc_range() */
|
||||
unsigned long nr_written = 0;
|
||||
int ret;
|
||||
int page_started = 0;
|
||||
|
||||
|
|
@ -3806,7 +3807,7 @@ static noinline_for_stack int writepage_delalloc(struct btrfs_inode *inode,
|
|||
continue;
|
||||
}
|
||||
ret = btrfs_run_delalloc_range(inode, page, delalloc_start,
|
||||
delalloc_end, &page_started, nr_written, wbc);
|
||||
delalloc_end, &page_started, &nr_written, wbc);
|
||||
if (ret) {
|
||||
btrfs_page_set_error(inode->root->fs_info, page,
|
||||
page_offset(page), PAGE_SIZE);
|
||||
|
|
@ -3829,16 +3830,13 @@ static noinline_for_stack int writepage_delalloc(struct btrfs_inode *inode,
|
|||
thresh);
|
||||
}
|
||||
|
||||
/* did the fill delalloc function already unlock and start
|
||||
* the IO?
|
||||
*/
|
||||
/* Did btrfs_run_dealloc_range() already unlock and start the IO? */
|
||||
if (page_started) {
|
||||
/*
|
||||
* we've unlocked the page, so we can't update
|
||||
* the mapping's writeback index, just update
|
||||
* nr_to_write.
|
||||
* We've unlocked the page, so we can't update the mapping's
|
||||
* writeback index, just update nr_to_write.
|
||||
*/
|
||||
wbc->nr_to_write -= *nr_written;
|
||||
wbc->nr_to_write -= nr_written;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -3910,7 +3908,6 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
|||
struct writeback_control *wbc,
|
||||
struct extent_page_data *epd,
|
||||
loff_t i_size,
|
||||
unsigned long nr_written,
|
||||
int *nr_ret)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = inode->root->fs_info;
|
||||
|
|
@ -3929,7 +3926,6 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
|||
if (ret) {
|
||||
/* Fixup worker will requeue */
|
||||
redirty_page_for_writepage(wbc, page);
|
||||
update_nr_written(wbc, nr_written);
|
||||
unlock_page(page);
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -3938,7 +3934,7 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
|||
* we don't want to touch the inode after unlocking the page,
|
||||
* so we update the mapping writeback index now
|
||||
*/
|
||||
update_nr_written(wbc, nr_written + 1);
|
||||
update_nr_written(wbc, 1);
|
||||
|
||||
while (cur <= end) {
|
||||
u64 disk_bytenr;
|
||||
|
|
@ -4076,7 +4072,6 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|||
size_t pg_offset;
|
||||
loff_t i_size = i_size_read(inode);
|
||||
unsigned long end_index = i_size >> PAGE_SHIFT;
|
||||
unsigned long nr_written = 0;
|
||||
|
||||
trace___extent_writepage(page, inode, wbc);
|
||||
|
||||
|
|
@ -4105,7 +4100,7 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|||
}
|
||||
|
||||
if (!epd->extent_locked) {
|
||||
ret = writepage_delalloc(BTRFS_I(inode), page, wbc, &nr_written);
|
||||
ret = writepage_delalloc(BTRFS_I(inode), page, wbc);
|
||||
if (ret == 1)
|
||||
return 0;
|
||||
if (ret)
|
||||
|
|
@ -4113,7 +4108,7 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|||
}
|
||||
|
||||
ret = __extent_writepage_io(BTRFS_I(inode), page, wbc, epd, i_size,
|
||||
nr_written, &nr);
|
||||
&nr);
|
||||
if (ret == 1)
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user