Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'io_uring-5.5-2020-01-10' of git://git.kernel.dk/linux-block

Pull io_uring fix from Jens Axboe:
"Single fix for this series, fixing a regression with the short read
handling.

This just removes it, as it cannot safely be done for all cases"

* tag 'io_uring-5.5-2020-01-10' of git://git.kernel.dk/linux-block:
io_uring: remove punt of short reads to async context

-12
-12
fs/io_uring.c
··· 1863 1863 else 1864 1864 ret2 = loop_rw_iter(READ, req->file, kiocb, &iter); 1865 1865 1866 - /* 1867 - * In case of a short read, punt to async. This can happen 1868 - * if we have data partially cached. Alternatively we can 1869 - * return the short read, in which case the application will 1870 - * need to issue another SQE and wait for it. That SQE will 1871 - * need async punt anyway, so it's more efficient to do it 1872 - * here. 1873 - */ 1874 - if (force_nonblock && !(req->flags & REQ_F_NOWAIT) && 1875 - (req->flags & REQ_F_ISREG) && 1876 - ret2 > 0 && ret2 < io_size) 1877 - ret2 = -EAGAIN; 1878 1866 /* Catch -EAGAIN return for forced non-blocking submission */ 1879 1867 if (!force_nonblock || ret2 != -EAGAIN) { 1880 1868 kiocb_done(kiocb, ret2, nxt, req->in_async);