]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ocfs2: use a folio in ocfs2_fast_symlink_read_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 5 Dec 2024 17:16:48 +0000 (17:16 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 13 Jan 2025 04:21:13 +0000 (20:21 -0800)
Use folio_end_read() instead of SetPageUptodate() and unlock_page().  Use
memcpy_to_folio() instead of open-coding a kmap_atomic() sequence.

Link: https://lkml.kernel.org/r/20241205171653.3179945-21-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Jun Piao <piaojun@huawei.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Mark Tinguely <mark.tinguely@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/ocfs2/symlink.c

index f5cf2255dc097296cffedceb7126ae25f675a2c0..ad8be3300b49b2a651b719ba19b8e2eafbea781b 100644 (file)
 
 static int ocfs2_fast_symlink_read_folio(struct file *f, struct folio *folio)
 {
-       struct page *page = &folio->page;
-       struct inode *inode = page->mapping->host;
+       struct inode *inode = folio->mapping->host;
        struct buffer_head *bh = NULL;
        int status = ocfs2_read_inode_block(inode, &bh);
        struct ocfs2_dinode *fe;
        const char *link;
-       void *kaddr;
        size_t len;
 
        if (status < 0) {
@@ -72,12 +70,9 @@ static int ocfs2_fast_symlink_read_folio(struct file *f, struct folio *folio)
        link = (char *) fe->id2.i_symlink;
        /* will be less than a page size */
        len = strnlen(link, ocfs2_fast_symlink_chars(inode->i_sb));
-       kaddr = kmap_atomic(page);
-       memcpy(kaddr, link, len + 1);
-       kunmap_atomic(kaddr);
-       SetPageUptodate(page);
+       memcpy_to_folio(folio, 0, link, len + 1);
 out:
-       unlock_page(page);
+       folio_end_read(folio, status == 0);
        brelse(bh);
        return status;
 }