On Fri, 2019-02-01 at 08:24 -0700, Jens Axboe wrote: +AD4 +-int iomap+AF8-dio+AF8-iopoll(struct kiocb +ACo-kiocb, bool spin) +AD4 +-+AHs +AD4 +- struct request+AF8-queue +ACo-q +AD0 READ+AF8-ONCE(kiocb-+AD4-private)+ADs +AD4 +- +AD4 +- if (+ACE-q) +AD4 +- return 0+ADs +AD4 +- return blk+AF8-poll(q, READ+AF8-ONCE(kiocb-+AD4-ki+AF8-cookie), spin)+ADs +AD4 +-+AH0 +AD4 +-EXPORT+AF8-SYMBOL+AF8-GPL(iomap+AF8-dio+AF8-iopoll)+ADs How does this interact with block device removal? My understanding is that this function can get called after a request has completed. Which mechanism, if any, prevents that request queue 'q' is removed after kiocb-+AD4-private has been read and before blk+AF8-poll() is called? Thanks, Bart.