diff options
Diffstat (limited to 'fs/nfs/write.c')
| -rw-r--r-- | fs/nfs/write.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/fs/nfs/write.c b/fs/nfs/write.c index e75b056f46f4..abb2c8a3be42 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1784,7 +1784,8 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)  			(long long)req_offset(req));  		if (status < 0) {  			nfs_context_set_write_error(req->wb_context, status); -			nfs_inode_remove_request(req); +			if (req->wb_page) +				nfs_inode_remove_request(req);  			dprintk_cont(", error = %d\n", status);  			goto next;  		} @@ -1793,7 +1794,8 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)  		 * returned by the server against all stored verfs. */  		if (!nfs_write_verifier_cmp(&req->wb_verf, &data->verf.verifier)) {  			/* We have a match */ -			nfs_inode_remove_request(req); +			if (req->wb_page) +				nfs_inode_remove_request(req);  			dprintk_cont(" OK\n");  			goto next;  		} |