Messages in this thread | | | From | Dylan Yudaken <> | Subject | Re: [PATCH v2 4/4] io_uring: pre-increment f_pos on rw | Date | Tue, 22 Feb 2022 10:52:17 +0000 |
| |
On Tue, 2022-02-22 at 15:34 +0800, Hao Xu wrote: > > On 2/21/22 22:16, Dylan Yudaken wrote: > > In read/write ops, preincrement f_pos when no offset is specified, > > and > > then attempt fix up the position after IO completes if it completed > > less > > than expected. This fixes the problem where multiple queued up IO > > will all > > obtain the same f_pos, and so perform the same read/write. > > > > This is still not as consistent as sync r/w, as it is able to > > advance the > > file offset past the end of the file. It seems it would be quite a > > performance hit to work around this limitation - such as by keeping > > track > > of concurrent operations - and the downside does not seem to be too > > problematic. > > > > The attempt to fix up the f_pos after will at least mean that in > > situations > > where a single operation is run, then the position will be > > consistent. > > > It's a little bit weird, when a read req returns x bytes read while > f_pos > > moves ahead y bytes where x isn't equal to y. Don't know if this > causes > > problems.. >
It seems to be ok - as in nothing crashes when f_pos is past the end of the file - but I really am not an expert on these things so am happy to receive feedback on this.
| |