Commit a3c2f196 authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Richard Weinberger

ubifs: Convert allocate_budget() to work on a folio

The one caller has a folio, so pass it in instead of the page.
Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent b96af1fd
...@@ -305,7 +305,7 @@ static int write_begin_slow(struct address_space *mapping, ...@@ -305,7 +305,7 @@ static int write_begin_slow(struct address_space *mapping,
/** /**
* allocate_budget - allocate budget for 'ubifs_write_begin()'. * allocate_budget - allocate budget for 'ubifs_write_begin()'.
* @c: UBIFS file-system description object * @c: UBIFS file-system description object
* @page: page to allocate budget for * @folio: folio to allocate budget for
* @ui: UBIFS inode object the page belongs to * @ui: UBIFS inode object the page belongs to
* @appending: non-zero if the page is appended * @appending: non-zero if the page is appended
* *
...@@ -316,15 +316,15 @@ static int write_begin_slow(struct address_space *mapping, ...@@ -316,15 +316,15 @@ static int write_begin_slow(struct address_space *mapping,
* *
* Returns: %0 in case of success and %-ENOSPC in case of failure. * Returns: %0 in case of success and %-ENOSPC in case of failure.
*/ */
static int allocate_budget(struct ubifs_info *c, struct page *page, static int allocate_budget(struct ubifs_info *c, struct folio *folio,
struct ubifs_inode *ui, int appending) struct ubifs_inode *ui, int appending)
{ {
struct ubifs_budget_req req = { .fast = 1 }; struct ubifs_budget_req req = { .fast = 1 };
if (PagePrivate(page)) { if (folio->private) {
if (!appending) if (!appending)
/* /*
* The page is dirty and we are not appending, which * The folio is dirty and we are not appending, which
* means no budget is needed at all. * means no budget is needed at all.
*/ */
return 0; return 0;
...@@ -348,11 +348,11 @@ static int allocate_budget(struct ubifs_info *c, struct page *page, ...@@ -348,11 +348,11 @@ static int allocate_budget(struct ubifs_info *c, struct page *page,
*/ */
req.dirtied_ino = 1; req.dirtied_ino = 1;
} else { } else {
if (PageChecked(page)) if (folio_test_checked(folio))
/* /*
* The page corresponds to a hole and does not * The page corresponds to a hole and does not
* exist on the media. So changing it makes * exist on the media. So changing it makes
* make the amount of indexing information * the amount of indexing information
* larger, and we have to budget for a new * larger, and we have to budget for a new
* page. * page.
*/ */
...@@ -460,7 +460,7 @@ static int ubifs_write_begin(struct file *file, struct address_space *mapping, ...@@ -460,7 +460,7 @@ static int ubifs_write_begin(struct file *file, struct address_space *mapping,
} }
} }
err = allocate_budget(c, &folio->page, ui, appending); err = allocate_budget(c, folio, ui, appending);
if (unlikely(err)) { if (unlikely(err)) {
ubifs_assert(c, err == -ENOSPC); ubifs_assert(c, err == -ENOSPC);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment