io_uring-5.9-2020-09-25
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAl9upV4QHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpuPrD/9K1UQLv38K2nPYclLymOi+GIsukpjgwzdY SM38GNXU5vYkFhylH/bXfckNQ/gja0/whNpcr/UVCgTWleMnss9UiZaCgysyuIOL vnBxT4yDZIxtkOwF/790NiwV2FrsmrLFdNZU4LkmfbmmrAlNtjOElKyJsOyNNMzJ UMzHH2Z1vvUwKz+Yq4fPyZCJbpNHN6ABwkSXY/Nz8oWsKfw728fZztLsP57gOtkl yYVFO2z1n7VaWp5ZzVFYG51DFuMCIDXgN6mMlaKfnQ6auQZxjR+jg69HSRKLjIx7 ZEG1gl/DzwH1+751P7HnuI3U7BtBYolyErHW4j4a6Ko4XX8PPhG9ODKOmsEMPrEq gCUGcGgWUsEyz+pyullTEt7ea/oLGJ5N86qtNOdviXETZZTghm47QlzxFWr1/GWy wH++ctBf/Ekk0dbCBF6mJiqDl/PrVSDSClTVhsGJESEmk4BOoC9zd9zT/EfsiR9m vA8wLE2g1/5oU+irQ0Dlc/EENVWISiigOFFvTPJJjma9iGXAW3kV2/aYW6DKZSwM w/va7zTlzt89O+L0AT+Rg8btaiTiaZcs3op1AFa1z5Gut3b5YhWL/e95wlaOI6Nv Tudm4GX06BaN1QdUDV9g0Pr5iNOaCvuOArjNOU3j7ySusJxiJ8GdA3WFqJ/XUlIV pne8hC/+7A== =mBw7 -----END PGP SIGNATURE----- Merge tag 'io_uring-5.9-2020-09-25' of git://git.kernel.dk/linux-block Pull io_uring fixes from Jens Axboe: "Two fixes for regressions in this cycle, and one that goes to 5.8 stable: - fix leak of getname() retrieved filename - remove plug->nowait assignment, fixing a regression with btrfs - fix for async buffered retry" * tag 'io_uring-5.9-2020-09-25' of git://git.kernel.dk/linux-block: io_uring: ensure async buffered read-retry is setup properly io_uring: don't unconditionally set plug->nowait = true io_uring: ensure open/openat2 name is cleaned on cancelation
This commit is contained in:
Коммит
692495baa3
|
@ -3172,10 +3172,8 @@ static int io_read(struct io_kiocb *req, bool force_nonblock,
|
|||
goto done;
|
||||
/* some cases will consume bytes even on error returns */
|
||||
iov_iter_revert(iter, iov_count - iov_iter_count(iter));
|
||||
ret = io_setup_async_rw(req, iovec, inline_vecs, iter, false);
|
||||
if (ret)
|
||||
goto out_free;
|
||||
return -EAGAIN;
|
||||
ret = 0;
|
||||
goto copy_iov;
|
||||
} else if (ret < 0) {
|
||||
/* make sure -ERESTARTSYS -> -EINTR is done */
|
||||
goto done;
|
||||
|
@ -5671,6 +5669,11 @@ static void __io_clean_op(struct io_kiocb *req)
|
|||
io_put_file(req, req->splice.file_in,
|
||||
(req->splice.flags & SPLICE_F_FD_IN_FIXED));
|
||||
break;
|
||||
case IORING_OP_OPENAT:
|
||||
case IORING_OP_OPENAT2:
|
||||
if (req->open.filename)
|
||||
putname(req->open.filename);
|
||||
break;
|
||||
}
|
||||
req->flags &= ~REQ_F_NEED_CLEANUP;
|
||||
}
|
||||
|
@ -6348,9 +6351,6 @@ static void io_submit_state_start(struct io_submit_state *state,
|
|||
struct io_ring_ctx *ctx, unsigned int max_ios)
|
||||
{
|
||||
blk_start_plug(&state->plug);
|
||||
#ifdef CONFIG_BLOCK
|
||||
state->plug.nowait = true;
|
||||
#endif
|
||||
state->comp.nr = 0;
|
||||
INIT_LIST_HEAD(&state->comp.list);
|
||||
state->comp.ctx = ctx;
|
||||
|
|
Загрузка…
Ссылка в новой задаче