]> git.baikalelectronics.ru Git - kernel.git/commitdiff
befs: Convert befs_symlink_read_folio() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 29 Apr 2022 15:12:16 +0000 (11:12 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 2 Aug 2022 16:34:03 +0000 (12:34 -0400)
This is a straightforward conversion from the page APIs to the folio
APIs.  Symlinks are not allowed to be larger than PAGE_SIZE, so there
is little work to do here.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
fs/befs/linuxvfs.c

index be383fa46b12a8514d440b04941aa31ff1f5bc69..32749fcee090ac4ce7957313c951ed66555b351f 100644 (file)
@@ -108,8 +108,7 @@ static const struct export_operations befs_export_operations = {
  * passes it the address of befs_get_block, for mapping file
  * positions to disk blocks.
  */
-static int
-befs_read_folio(struct file *file, struct folio *folio)
+static int befs_read_folio(struct file *file, struct folio *folio)
 {
        return block_read_full_folio(folio, befs_get_block);
 }
@@ -470,13 +469,12 @@ befs_destroy_inodecache(void)
  */
 static int befs_symlink_read_folio(struct file *unused, struct folio *folio)
 {
-       struct page *page = &folio->page;
-       struct inode *inode = page->mapping->host;
+       struct inode *inode = folio->mapping->host;
        struct super_block *sb = inode->i_sb;
        struct befs_inode_info *befs_ino = BEFS_I(inode);
        befs_data_stream *data = &befs_ino->i_data.ds;
        befs_off_t len = data->size;
-       char *link = page_address(page);
+       char *link = folio_address(folio);
 
        if (len == 0 || len > PAGE_SIZE) {
                befs_error(sb, "Long symlink with illegal length");
@@ -489,12 +487,12 @@ static int befs_symlink_read_folio(struct file *unused, struct folio *folio)
                goto fail;
        }
        link[len - 1] = '\0';
-       SetPageUptodate(page);
-       unlock_page(page);
+       folio_mark_uptodate(folio);
+       folio_unlock(folio);
        return 0;
 fail:
-       SetPageError(page);
-       unlock_page(page);
+       folio_set_error(folio);
+       folio_unlock(folio);
        return -EIO;
 }