Thread (53 messages) 53 messages, 4 authors, 2021-07-12

Re: [PATCH v5 02/10] io_uring: add support for IORING_OP_MKDIRAT

From: Pavel Begunkov <asml.silence@gmail.com>
Date: 2021-06-24 12:22:09
Also in: linux-fsdevel

On 6/24/21 12:11 PM, Dmitry Kadashev wrote:
On Wed, Jun 23, 2021 at 6:54 PM Pavel Begunkov [off-list ref] wrote:
quoted
On 6/23/21 7:41 AM, Dmitry Kadashev wrote:
quoted
I'd imagine READ_ONCE is to be used in those checks though, isn't it? Some of
the existing checks like this lack it too btw. I suppose I can fix those in a
separate commit if that makes sense.
When we really use a field there should be a READ_ONCE(),
but I wouldn't care about those we check for compatibility
reasons, but that's only my opinion.
I'm not sure how the compatibility check reads are special. The code is
either correct or not. If a compatibility check has correctness problems
then it's pretty much as bad as any other part of the code having such
problems, no?
If it reads and verifies a values first, e.g. index into some internal
array, and then compiler plays a joke and reloads it, we might be
absolutely screwed expecting 'segfaults', kernel data leakages and all
the fun stuff.

If that's a compatibility check, whether it's loaded earlier or later,
or whatever, it's not a big deal, the userspace can in any case change
the memory at any moment it wishes, even tightly around the moment
we're reading it.

That said, I'll just go ahead and use the approach that the rest of the
code (or rather most of it) uses (no READ_ONCE). If it needs fixing then
the whole bunch can probably be fixed in one go (either a single patch
or a series).

Thanks for your help, Pavel!
-- 
Pavel Begunkov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help