]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
minixfs: Convert minix_delete_entry() to work on a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 10 Jul 2024 00:40:11 +0000 (20:40 -0400)
committerChristian Brauner <brauner@kernel.org>
Wed, 7 Aug 2024 09:31:57 +0000 (11:31 +0200)
Match ext2 and remove a few hidden calls to compound_head().

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/minix/dir.c
fs/minix/minix.h
fs/minix/namei.c

index c32d182c2d74cd8bf924fcb1d447c824eb7ae84f..994bbbd3dea21f50803e6863ab797fcbf4a52bf3 100644 (file)
@@ -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);
index 6ed34209ed33f909e3b0de8b55d14770f06c2c32..063bab8faa6b3850a36ef85a12a7fc065b4969fe 100644 (file)
@@ -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,
index ba82fa3332f12d03a0e0209608feeb0799ea9242..5d9c1406fe272cff0ee6fbe616eaa93210f2f0ba 100644 (file)
@@ -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;