|
@@ -2924,10 +2924,12 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
|
|
}
|
|
}
|
|
|
|
|
|
if (io->async) {
|
|
if (io->async) {
|
|
|
|
+ bool blocking = io->blocking;
|
|
|
|
+
|
|
fuse_aio_complete(io, ret < 0 ? ret : 0, -1);
|
|
fuse_aio_complete(io, ret < 0 ? ret : 0, -1);
|
|
|
|
|
|
/* we have a non-extending, async request, so return */
|
|
/* we have a non-extending, async request, so return */
|
|
- if (!io->blocking)
|
|
|
|
|
|
+ if (!blocking)
|
|
return -EIOCBQUEUED;
|
|
return -EIOCBQUEUED;
|
|
|
|
|
|
wait_for_completion(&wait);
|
|
wait_for_completion(&wait);
|