mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
jbd2: Convert jbd2_journal_try_to_free_buffers to take a folio
Also convert it to return a bool since it's called from release_folio(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Acked-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jeff Layton <jlayton@kernel.org>
This commit is contained in:
parent
be6b969c9b
commit
c56a6eb03d
@ -3253,7 +3253,7 @@ static bool ext4_release_folio(struct folio *folio, gfp_t wait)
|
||||
if (folio_test_checked(folio))
|
||||
return false;
|
||||
if (journal)
|
||||
return jbd2_journal_try_to_free_buffers(journal, &folio->page);
|
||||
return jbd2_journal_try_to_free_buffers(journal, folio);
|
||||
else
|
||||
return try_to_free_buffers(&folio->page);
|
||||
}
|
||||
|
@ -2143,17 +2143,17 @@ out:
|
||||
* cannot happen because we never reallocate freed data as metadata
|
||||
* while the data is part of a transaction. Yes?
|
||||
*
|
||||
* Return 0 on failure, 1 on success
|
||||
* Return false on failure, true on success
|
||||
*/
|
||||
int jbd2_journal_try_to_free_buffers(journal_t *journal, struct page *page)
|
||||
bool jbd2_journal_try_to_free_buffers(journal_t *journal, struct folio *folio)
|
||||
{
|
||||
struct buffer_head *head;
|
||||
struct buffer_head *bh;
|
||||
int ret = 0;
|
||||
bool ret = false;
|
||||
|
||||
J_ASSERT(PageLocked(page));
|
||||
J_ASSERT(folio_test_locked(folio));
|
||||
|
||||
head = page_buffers(page);
|
||||
head = folio_buffers(folio);
|
||||
bh = head;
|
||||
do {
|
||||
struct journal_head *jh;
|
||||
@ -2175,7 +2175,7 @@ int jbd2_journal_try_to_free_buffers(journal_t *journal, struct page *page)
|
||||
goto busy;
|
||||
} while ((bh = bh->b_this_page) != head);
|
||||
|
||||
ret = try_to_free_buffers(page);
|
||||
ret = try_to_free_buffers(&folio->page);
|
||||
busy:
|
||||
return ret;
|
||||
}
|
||||
|
@ -1529,7 +1529,7 @@ extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *);
|
||||
extern int jbd2_journal_forget (handle_t *, struct buffer_head *);
|
||||
int jbd2_journal_invalidate_folio(journal_t *, struct folio *,
|
||||
size_t offset, size_t length);
|
||||
extern int jbd2_journal_try_to_free_buffers(journal_t *journal, struct page *page);
|
||||
bool jbd2_journal_try_to_free_buffers(journal_t *journal, struct folio *folio);
|
||||
extern int jbd2_journal_stop(handle_t *);
|
||||
extern int jbd2_journal_flush(journal_t *journal, unsigned int flags);
|
||||
extern void jbd2_journal_lock_updates (journal_t *);
|
||||
|
Loading…
Reference in New Issue
Block a user