From: David Howells Date: Tue, 2 Feb 2021 17:40:36 +0000 (+0000) Subject: afs: Fix error handling in afs_req_issue_op() X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=12a86789cc2c154ad43d6d2eeadc650abb82d4e8;p=ceph-client.git afs: Fix error handling in afs_req_issue_op() Fix error handling in afs_req_issue_op() by calling netfs_subreq_terminated() rather than simply storing the error in subreq->error. The netfs function must be called to wake up anyone waiting. Fixes: 751551a7a74a ("afs: Use new fscache read helper API") Signed-off-by: David Howells --- diff --git a/fs/afs/file.c b/fs/afs/file.c index 8ae9c7089e73..8f28d4f4cfd7 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c @@ -288,10 +288,8 @@ static void afs_req_issue_op(struct netfs_read_subrequest *subreq) int ret; fsreq = afs_alloc_read(GFP_NOFS); - if (!fsreq) { - subreq->error = -ENOMEM; - return; - } + if (!fsreq) + return netfs_subreq_terminated(subreq, -ENOMEM); fsreq->subreq = subreq; fsreq->pos = subreq->start + subreq->transferred; @@ -306,7 +304,7 @@ static void afs_req_issue_op(struct netfs_read_subrequest *subreq) ret = afs_fetch_data(fsreq->vnode, fsreq); if (ret < 0) - subreq->error = ret; + return netfs_subreq_terminated(subreq, ret); } static int afs_symlink_readpage(struct page *page)