Skip to content

Commit 833f415

Browse files
author
Al Viro
committed
aio: fold lookup_kiocb() into its sole caller
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent b53119f commit 833f415

File tree

1 file changed

+7
-22
lines changed

1 file changed

+7
-22
lines changed

fs/aio.c

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2002,24 +2002,6 @@ COMPAT_SYSCALL_DEFINE3(io_submit, compat_aio_context_t, ctx_id,
20022002
}
20032003
#endif
20042004

2005-
/* lookup_kiocb
2006-
* Finds a given iocb for cancellation.
2007-
*/
2008-
static struct aio_kiocb *
2009-
lookup_kiocb(struct kioctx *ctx, struct iocb __user *iocb)
2010-
{
2011-
struct aio_kiocb *kiocb;
2012-
2013-
assert_spin_locked(&ctx->ctx_lock);
2014-
2015-
/* TODO: use a hash or array, this sucks. */
2016-
list_for_each_entry(kiocb, &ctx->active_reqs, ki_list) {
2017-
if (kiocb->ki_user_iocb == iocb)
2018-
return kiocb;
2019-
}
2020-
return NULL;
2021-
}
2022-
20232005
/* sys_io_cancel:
20242006
* Attempts to cancel an iocb previously passed to io_submit. If
20252007
* the operation is successfully cancelled, the resulting event is
@@ -2048,10 +2030,13 @@ SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb,
20482030
return -EINVAL;
20492031

20502032
spin_lock_irq(&ctx->ctx_lock);
2051-
kiocb = lookup_kiocb(ctx, iocb);
2052-
if (kiocb) {
2053-
ret = kiocb->ki_cancel(&kiocb->rw);
2054-
list_del_init(&kiocb->ki_list);
2033+
/* TODO: use a hash or array, this sucks. */
2034+
list_for_each_entry(kiocb, &ctx->active_reqs, ki_list) {
2035+
if (kiocb->ki_user_iocb == iocb) {
2036+
ret = kiocb->ki_cancel(&kiocb->rw);
2037+
list_del_init(&kiocb->ki_list);
2038+
break;
2039+
}
20552040
}
20562041
spin_unlock_irq(&ctx->ctx_lock);
20572042

0 commit comments

Comments
 (0)