mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	NFS: Fix up return value on fatal errors in nfs_page_async_flush()
Ensure that we return the fatal error value that caused us to exit
nfs_page_async_flush().
Fixes: c373fff7bd ("NFSv4: Don't special case "launder"")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: stable@vger.kernel.org # v4.12+
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
			
			
This commit is contained in:
		
							parent
							
								
									80ff001724
								
							
						
					
					
						commit
						8fc75bed96
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -621,11 +621,12 @@ static int nfs_page_async_flush(struct nfs_pageio_descriptor *pgio,
 | 
			
		|||
	nfs_set_page_writeback(page);
 | 
			
		||||
	WARN_ON_ONCE(test_bit(PG_CLEAN, &req->wb_flags));
 | 
			
		||||
 | 
			
		||||
	ret = 0;
 | 
			
		||||
	ret = req->wb_context->error;
 | 
			
		||||
	/* If there is a fatal error that covers this write, just exit */
 | 
			
		||||
	if (nfs_error_is_fatal_on_server(req->wb_context->error))
 | 
			
		||||
	if (nfs_error_is_fatal_on_server(ret))
 | 
			
		||||
		goto out_launder;
 | 
			
		||||
 | 
			
		||||
	ret = 0;
 | 
			
		||||
	if (!nfs_pageio_add_request(pgio, req)) {
 | 
			
		||||
		ret = pgio->pg_error;
 | 
			
		||||
		/*
 | 
			
		||||
| 
						 | 
				
			
			@ -635,9 +636,9 @@ static int nfs_page_async_flush(struct nfs_pageio_descriptor *pgio,
 | 
			
		|||
			nfs_context_set_write_error(req->wb_context, ret);
 | 
			
		||||
			if (nfs_error_is_fatal_on_server(ret))
 | 
			
		||||
				goto out_launder;
 | 
			
		||||
		}
 | 
			
		||||
		} else
 | 
			
		||||
			ret = -EAGAIN;
 | 
			
		||||
		nfs_redirty_request(req);
 | 
			
		||||
		ret = -EAGAIN;
 | 
			
		||||
	} else
 | 
			
		||||
		nfs_add_stats(page_file_mapping(page)->host,
 | 
			
		||||
				NFSIOS_WRITEPAGES, 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue