Skip to content

Commit 82dd620

Browse files
Matthew Wilcox (Oracle)jankara
authored andcommitted
ext2: Convert ext2_prepare_chunk and ext2_commit_chunk to folios
All callers now have a folio, so pass it in. Saves one call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) <[email protected]> Signed-off-by: Jan Kara <[email protected]>
1 parent da3a849 commit 82dd620

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

fs/ext2/dir.c

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,19 @@ ext2_last_byte(struct inode *inode, unsigned long page_nr)
8181
return last_byte;
8282
}
8383

84-
static void ext2_commit_chunk(struct page *page, loff_t pos, unsigned len)
84+
static void ext2_commit_chunk(struct folio *folio, loff_t pos, unsigned len)
8585
{
86-
struct address_space *mapping = page->mapping;
86+
struct address_space *mapping = folio->mapping;
8787
struct inode *dir = mapping->host;
8888

8989
inode_inc_iversion(dir);
90-
block_write_end(NULL, mapping, pos, len, len, page, NULL);
90+
block_write_end(NULL, mapping, pos, len, len, &folio->page, NULL);
9191

9292
if (pos+len > dir->i_size) {
9393
i_size_write(dir, pos+len);
9494
mark_inode_dirty(dir);
9595
}
96-
unlock_page(page);
96+
folio_unlock(folio);
9797
}
9898

9999
static bool ext2_check_folio(struct folio *folio, int quiet, char *kaddr)
@@ -433,12 +433,11 @@ int ext2_inode_by_name(struct inode *dir, const struct qstr *child, ino_t *ino)
433433
return 0;
434434
}
435435

436-
static int ext2_prepare_chunk(struct page *page, loff_t pos, unsigned len)
436+
static int ext2_prepare_chunk(struct folio *folio, loff_t pos, unsigned len)
437437
{
438-
return __block_write_begin(page, pos, len, ext2_get_block);
438+
return __block_write_begin(&folio->page, pos, len, ext2_get_block);
439439
}
440440

441-
442441
static int ext2_handle_dirsync(struct inode *dir)
443442
{
444443
int err;
@@ -457,14 +456,14 @@ int ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de,
457456
int err;
458457

459458
folio_lock(folio);
460-
err = ext2_prepare_chunk(&folio->page, pos, len);
459+
err = ext2_prepare_chunk(folio, pos, len);
461460
if (err) {
462461
folio_unlock(folio);
463462
return err;
464463
}
465464
de->inode = cpu_to_le32(inode->i_ino);
466465
ext2_set_de_type(de, inode);
467-
ext2_commit_chunk(&folio->page, pos, len);
466+
ext2_commit_chunk(folio, pos, len);
468467
if (update_times)
469468
dir->i_mtime = inode_set_ctime_current(dir);
470469
EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
@@ -539,7 +538,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
539538

540539
got_it:
541540
pos = folio_pos(folio) + offset_in_folio(folio, de);
542-
err = ext2_prepare_chunk(&folio->page, pos, rec_len);
541+
err = ext2_prepare_chunk(folio, pos, rec_len);
543542
if (err)
544543
goto out_unlock;
545544
if (de->inode) {
@@ -552,7 +551,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
552551
memcpy(de->name, name, namelen);
553552
de->inode = cpu_to_le32(inode->i_ino);
554553
ext2_set_de_type (de, inode);
555-
ext2_commit_chunk(&folio->page, pos, rec_len);
554+
ext2_commit_chunk(folio, pos, rec_len);
556555
dir->i_mtime = inode_set_ctime_current(dir);
557556
EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
558557
mark_inode_dirty(dir);
@@ -598,15 +597,15 @@ int ext2_delete_entry(struct ext2_dir_entry_2 *dir, struct folio *folio)
598597
from = offset_in_folio(folio, pde);
599598
pos = folio_pos(folio) + from;
600599
folio_lock(folio);
601-
err = ext2_prepare_chunk(&folio->page, pos, to - from);
600+
err = ext2_prepare_chunk(folio, pos, to - from);
602601
if (err) {
603602
folio_unlock(folio);
604603
return err;
605604
}
606605
if (pde)
607606
pde->rec_len = ext2_rec_len_to_disk(to - from);
608607
dir->inode = 0;
609-
ext2_commit_chunk(&folio->page, pos, to - from);
608+
ext2_commit_chunk(folio, pos, to - from);
610609
inode->i_mtime = inode_set_ctime_current(inode);
611610
EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL;
612611
mark_inode_dirty(inode);
@@ -627,7 +626,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
627626
if (IS_ERR(folio))
628627
return PTR_ERR(folio);
629628

630-
err = ext2_prepare_chunk(&folio->page, 0, chunk_size);
629+
err = ext2_prepare_chunk(folio, 0, chunk_size);
631630
if (err) {
632631
folio_unlock(folio);
633632
goto fail;
@@ -648,7 +647,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
648647
memcpy (de->name, "..\0", 4);
649648
ext2_set_de_type (de, inode);
650649
kunmap_local(kaddr);
651-
ext2_commit_chunk(&folio->page, 0, chunk_size);
650+
ext2_commit_chunk(folio, 0, chunk_size);
652651
err = ext2_handle_dirsync(inode);
653652
fail:
654653
folio_put(folio);

0 commit comments

Comments
 (0)