io_uring: correct check for O_TMPFILE
O_TMPFILE is actually __O_TMPFILE|O_DIRECTORY. This means that the old
check for whether RESOLVE_CACHED can be used would incorrectly think
that O_DIRECTORY could not be used with RESOLVE_CACHED.
Cc: stable@vger.kernel.org # v5.12+
Fixes: 3a81fd0204
("io_uring: enable LOOKUP_CACHED path resolution for filename lookups")
Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
Link: https://lore.kernel.org/r/20230807-resolve_cached-o_tmpfile-v3-1-e49323e1ef6f@cyphar.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
52a93d39b1
commit
72dbde0f2a
|
@ -35,9 +35,11 @@ static bool io_openat_force_async(struct io_open *open)
|
|||
{
|
||||
/*
|
||||
* Don't bother trying for O_TRUNC, O_CREAT, or O_TMPFILE open,
|
||||
* it'll always -EAGAIN
|
||||
* it'll always -EAGAIN. Note that we test for __O_TMPFILE because
|
||||
* O_TMPFILE includes O_DIRECTORY, which isn't a flag we need to force
|
||||
* async for.
|
||||
*/
|
||||
return open->how.flags & (O_TRUNC | O_CREAT | O_TMPFILE);
|
||||
return open->how.flags & (O_TRUNC | O_CREAT | __O_TMPFILE);
|
||||
}
|
||||
|
||||
static int __io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
||||
|
|
Loading…
Reference in New Issue