From: Matthew Wilcox (Oracle) Date: Wed, 10 Jul 2024 00:40:11 +0000 (-0400) Subject: minixfs: Convert minix_delete_entry() to work on a folio X-Git-Tag: v6.12-rc1~214^2~2^2~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e033fe609d749749ba40554f6c312f9b29b28447;p=thirdparty%2Fkernel%2Flinux.git minixfs: Convert minix_delete_entry() to work on a folio Match ext2 and remove a few hidden calls to compound_head(). Reviewed-by: Josef Bacik Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Christian Brauner --- diff --git a/fs/minix/dir.c b/fs/minix/dir.c index c32d182c2d74c..994bbbd3dea21 100644 --- a/fs/minix/dir.c +++ b/fs/minix/dir.c @@ -283,25 +283,25 @@ out_unlock: goto out_put; } -int minix_delete_entry(struct minix_dir_entry *de, struct page *page) +int minix_delete_entry(struct minix_dir_entry *de, struct folio *folio) { - struct inode *inode = page->mapping->host; - loff_t pos = page_offset(page) + offset_in_page(de); + struct inode *inode = folio->mapping->host; + loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); struct minix_sb_info *sbi = minix_sb(inode->i_sb); unsigned len = sbi->s_dirsize; int err; - lock_page(page); - err = minix_prepare_chunk(page, pos, len); + folio_lock(folio); + err = minix_prepare_chunk(&folio->page, pos, len); if (err) { - unlock_page(page); + folio_unlock(folio); return err; } if (sbi->s_version == MINIX_V3) ((minix3_dirent *)de)->inode = 0; else de->inode = 0; - dir_commit_chunk(page, pos, len); + dir_commit_chunk(&folio->page, pos, len); inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); mark_inode_dirty(inode); return minix_handle_dirsync(inode); diff --git a/fs/minix/minix.h b/fs/minix/minix.h index 6ed34209ed33f..063bab8faa6b3 100644 --- a/fs/minix/minix.h +++ b/fs/minix/minix.h @@ -66,7 +66,7 @@ extern unsigned V2_minix_blocks(loff_t, struct super_block *); struct minix_dir_entry *minix_find_entry(struct dentry *, struct folio **); int minix_add_link(struct dentry*, struct inode*); -int minix_delete_entry(struct minix_dir_entry*, struct page*); +int minix_delete_entry(struct minix_dir_entry *, struct folio *); int minix_make_empty(struct inode*, struct inode*); int minix_empty_dir(struct inode*); int minix_set_link(struct minix_dir_entry *de, struct folio *folio, diff --git a/fs/minix/namei.c b/fs/minix/namei.c index ba82fa3332f12..5d9c1406fe272 100644 --- a/fs/minix/namei.c +++ b/fs/minix/namei.c @@ -148,7 +148,7 @@ static int minix_unlink(struct inode * dir, struct dentry *dentry) de = minix_find_entry(dentry, &folio); if (!de) return -ENOENT; - err = minix_delete_entry(de, &folio->page); + err = minix_delete_entry(de, folio); folio_release_kmap(folio, de); if (err) @@ -228,7 +228,7 @@ static int minix_rename(struct mnt_idmap *idmap, inode_inc_link_count(new_dir); } - err = minix_delete_entry(old_de, &old_folio->page); + err = minix_delete_entry(old_de, old_folio); if (err) goto out_dir;