]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
afs: Fix error handling in afs_req_issue_op()
authorDavid Howells <dhowells@redhat.com>
Tue, 2 Feb 2021 17:40:36 +0000 (17:40 +0000)
committerDavid Howells <dhowells@redhat.com>
Tue, 2 Feb 2021 20:41:40 +0000 (20:41 +0000)
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 <dhowells@redhat.com>
fs/afs/file.c

index 8ae9c7089e73aff7847965169c71096e54e7158a..8f28d4f4cfd77a91ced2f9a3d7bb34bcbfd0dba0 100644 (file)
@@ -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)