nfs: Remove calls to folio_set_error

Common code doesn't test the error flag, so we don't need to set it in
nfs.  We can use folio_end_read() to combine the setting (or not)
of the uptodate flag and clearing the lock flag.

Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna@kernel.org>
Cc: linux-nfs@vger.kernel.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lore.kernel.org/r/20240530202110.2653630-10-willy@infradead.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2024-05-30 21:21:01 +01:00 committed by Christian Brauner
parent d15b00b1e5
commit 8f3ab6e4be
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2
3 changed files with 2 additions and 13 deletions

View File

@ -122,8 +122,6 @@ static void nfs_readpage_release(struct nfs_page *req, int error)
{ {
struct folio *folio = nfs_page_to_folio(req); struct folio *folio = nfs_page_to_folio(req);
if (nfs_error_is_fatal_on_server(error) && error != -ETIMEDOUT)
folio_set_error(folio);
if (nfs_page_group_sync_on_bit(req, PG_UNLOCKPAGE)) if (nfs_page_group_sync_on_bit(req, PG_UNLOCKPAGE))
if (nfs_netfs_folio_unlock(folio)) if (nfs_netfs_folio_unlock(folio))
folio_unlock(folio); folio_unlock(folio);

View File

@ -32,16 +32,8 @@ static int nfs_symlink_filler(struct file *file, struct folio *folio)
int error; int error;
error = NFS_PROTO(inode)->readlink(inode, &folio->page, 0, PAGE_SIZE); error = NFS_PROTO(inode)->readlink(inode, &folio->page, 0, PAGE_SIZE);
if (error < 0) folio_end_read(folio, error == 0);
goto error; return error;
folio_mark_uptodate(folio);
folio_unlock(folio);
return 0;
error:
folio_set_error(folio);
folio_unlock(folio);
return -EIO;
} }
static const char *nfs_get_link(struct dentry *dentry, static const char *nfs_get_link(struct dentry *dentry,

View File

@ -311,7 +311,6 @@ static void nfs_mapping_set_error(struct folio *folio, int error)
{ {
struct address_space *mapping = folio_file_mapping(folio); struct address_space *mapping = folio_file_mapping(folio);
folio_set_error(folio);
filemap_set_wb_err(mapping, error); filemap_set_wb_err(mapping, error);
if (mapping->host) if (mapping->host)
errseq_set(&mapping->host->i_sb->s_wb_err, errseq_set(&mapping->host->i_sb->s_wb_err,