Commit 7c5c654c authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Andrew Morton

nilfs2: convert nilfs_btnode_prepare_change_key to use a folio

Saves three calls to compound_head().

Link: https://lkml.kernel.org/r/20231114084436.2755-19-konishi.ryusuke@gmail.comSigned-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent cf62eb2c
...@@ -185,23 +185,23 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc, ...@@ -185,23 +185,23 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc,
ctxt->newbh = NULL; ctxt->newbh = NULL;
if (inode->i_blkbits == PAGE_SHIFT) { if (inode->i_blkbits == PAGE_SHIFT) {
struct page *opage = obh->b_page; struct folio *ofolio = obh->b_folio;
lock_page(opage); folio_lock(ofolio);
retry: retry:
/* BUG_ON(oldkey != obh->b_folio->index); */ /* BUG_ON(oldkey != obh->b_folio->index); */
if (unlikely(oldkey != opage->index)) if (unlikely(oldkey != ofolio->index))
NILFS_PAGE_BUG(opage, NILFS_PAGE_BUG(&ofolio->page,
"invalid oldkey %lld (newkey=%lld)", "invalid oldkey %lld (newkey=%lld)",
(unsigned long long)oldkey, (unsigned long long)oldkey,
(unsigned long long)newkey); (unsigned long long)newkey);
xa_lock_irq(&btnc->i_pages); xa_lock_irq(&btnc->i_pages);
err = __xa_insert(&btnc->i_pages, newkey, opage, GFP_NOFS); err = __xa_insert(&btnc->i_pages, newkey, ofolio, GFP_NOFS);
xa_unlock_irq(&btnc->i_pages); xa_unlock_irq(&btnc->i_pages);
/* /*
* Note: page->index will not change to newkey until * Note: folio->index will not change to newkey until
* nilfs_btnode_commit_change_key() will be called. * nilfs_btnode_commit_change_key() will be called.
* To protect the page in intermediate state, the page lock * To protect the folio in intermediate state, the folio lock
* is held. * is held.
*/ */
if (!err) if (!err)
...@@ -213,7 +213,7 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc, ...@@ -213,7 +213,7 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc,
if (!err) if (!err)
goto retry; goto retry;
/* fallback to copy mode */ /* fallback to copy mode */
unlock_page(opage); folio_unlock(ofolio);
} }
nbh = nilfs_btnode_create_block(btnc, newkey); nbh = nilfs_btnode_create_block(btnc, newkey);
...@@ -225,7 +225,7 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc, ...@@ -225,7 +225,7 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc,
return 0; return 0;
failed_unlock: failed_unlock:
unlock_page(obh->b_page); folio_unlock(obh->b_folio);
return err; return err;
} }
......
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