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.16-2021-12-23' of git://git.kernel.dk/linux-block

Pull io_uring fix from Jens Axboe:
"Single fix for not clearing kiocb->ki_pos back to 0 for a stream,
destined for stable as well"

* tag 'io_uring-5.16-2021-12-23' of git://git.kernel.dk/linux-block:
io_uring: zero iocb->ki_pos for stream file types

+7 -3
+7 -3
fs/io_uring.c
··· 2891 2891 req->flags |= io_file_get_flags(file) << REQ_F_SUPPORT_NOWAIT_BIT; 2892 2892 2893 2893 kiocb->ki_pos = READ_ONCE(sqe->off); 2894 - if (kiocb->ki_pos == -1 && !(file->f_mode & FMODE_STREAM)) { 2895 - req->flags |= REQ_F_CUR_POS; 2896 - kiocb->ki_pos = file->f_pos; 2894 + if (kiocb->ki_pos == -1) { 2895 + if (!(file->f_mode & FMODE_STREAM)) { 2896 + req->flags |= REQ_F_CUR_POS; 2897 + kiocb->ki_pos = file->f_pos; 2898 + } else { 2899 + kiocb->ki_pos = 0; 2900 + } 2897 2901 } 2898 2902 kiocb->ki_flags = iocb_flags(file); 2899 2903 ret = kiocb_set_rw_flags(kiocb, READ_ONCE(sqe->rw_flags));