ceph: call netfs_subreq_terminated with was_async == false
authorJeff Layton <jlayton@kernel.org>
Tue, 7 Jun 2022 17:06:14 +0000 (13:06 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 2 Aug 2022 22:54:12 +0000 (00:54 +0200)
"was_async" is a bit misleadingly named. It's supposed to indicate
whether it's safe to call blocking operations from the context you're
calling it from, but it sounds like it's asking whether this was done
via async operation. For ceph, this it's always called from kernel
thread context so it should be safe to set this to false.

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/addr.c

index d6e5916..01fe75b 100644 (file)
@@ -237,7 +237,7 @@ static void finish_netfs_read(struct ceph_osd_request *req)
        if (err >= 0 && err < subreq->len)
                __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags);
 
-       netfs_subreq_terminated(subreq, err, true);
+       netfs_subreq_terminated(subreq, err, false);
 
        num_pages = calc_pages_for(osd_data->alignment, osd_data->length);
        ceph_put_page_vector(osd_data->pages, num_pages, false);