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.