Skip to content

Commit

Permalink
io_uring: Convert advanced XArray uses to the normal API
Browse files Browse the repository at this point in the history
commit 5e2ed8c upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Matthew Wilcox (Oracle) authored and gregkh committed Nov 1, 2020
1 parent a05b5f7 commit db4d1a3
Showing 1 changed file with 2 additions and 12 deletions.
14 changes: 2 additions & 12 deletions fs/io_uring.c
Expand Up @@ -8365,27 +8365,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, &current->io_uring->xa, (unsigned long) file);
struct file *old;

rcu_read_lock();
old = xas_load(&xas);
rcu_read_unlock();
struct file *old = xa_load(&current->io_uring->xa, (unsigned long)file);

if (old == file)
io_uring_del_task_file(file);
Expand Down

0 comments on commit db4d1a3

Please sign in to comment.