Commit ac09d88b authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle)
Browse files

befs: Convert befs_symlink_read_folio() to use a folio



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: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
parent 4fdc08d4
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -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;
}