[RFC] what exactly prevents io_iopoll_try_reap_events() triggering io_queue_async_work()?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



	I really hope that we can't hit io_iopoll_try_reap_events() ->
io_do_iopoll() -> io_iopoll_complete() -> io_queue_async_work() call
chain (if we _can_, there's a lot of nasty stuff possible), but I don't
see any robust proof that it'll never happen.

	Sure, there's that percpu_ref_is_dying(&ctx->refs) test in
io_rw_should_reissue(), but what's to guarantee that it had been
called after the matching percpu_ref_kill(&ctx->refs)?  For that
matter, what about the call from io_uring_cancel_generic() <-
__io_uring_cancel() <- io_uring_files_cancel() <- do_exit()?

	What am I missing here?



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux