mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
io_uring: Convert advanced XArray uses to the normal API
There are no bugs here that I've spotted, it's just easier to use the normal API and there are no performance advantages to using the more verbose advanced API. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
236434c343
commit
5e2ed8c4f4
@ -8615,27 +8615,17 @@ static int io_uring_add_task_file(struct file *file)
|
||||
static void io_uring_del_task_file(struct file *file)
|
||||
{
|
||||
struct io_uring_task *tctx = current->io_uring;
|
||||
XA_STATE(xas, &tctx->xa, (unsigned long) file);
|
||||
|
||||
if (tctx->last == file)
|
||||
tctx->last = NULL;
|
||||
|
||||
xas_lock(&xas);
|
||||
file = xas_store(&xas, NULL);
|
||||
xas_unlock(&xas);
|
||||
|
||||
file = xa_erase(&tctx->xa, (unsigned long)file);
|
||||
if (file)
|
||||
fput(file);
|
||||
}
|
||||
|
||||
static void __io_uring_attempt_task_drop(struct file *file)
|
||||
{
|
||||
XA_STATE(xas, ¤t->io_uring->xa, (unsigned long) file);
|
||||
struct file *old;
|
||||
|
||||
rcu_read_lock();
|
||||
old = xas_load(&xas);
|
||||
rcu_read_unlock();
|
||||
struct file *old = xa_load(¤t->io_uring->xa, (unsigned long)file);
|
||||
|
||||
if (old == file)
|
||||
io_uring_del_task_file(file);
|
||||
|
Loading…
Reference in New Issue
Block a user