David Howells <dhowells@xxxxxxxxxx> wrote: > +static void v9fs_req_issue_op(struct netfs_read_subrequest *subreq) > { > + struct netfs_read_request *rreq = subreq->rreq; > + struct p9_fid *fid = rreq->netfs_priv; > struct iov_iter to; > + loff_t pos = subreq->start + subreq->transferred; > + size_t len = subreq->len - subreq->transferred; > int retval, err; > > + iov_iter_xarray(&to, READ, &rreq->mapping->i_pages, pos, len); > > + retval = p9_client_read(fid, pos, &to, &err); > + if (retval) > + subreq->error = retval; I forgot something: netfs_subreq_terminated() needs to be called when the read is complete. If p9_client_read() is synchronous, then that would be here, probably something like: retval = p9_client_read(fid, pos, &to, &err); netfs_subreq_terminated(subreq, retval); is what's required. Manually setting subreq->error can then be removed. David -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/linux-cachefs