Re: [PATCH 04/18] iomap: wire up the iopoll method

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

 



On 2/1/19 9:59 AM, Bart Van Assche wrote:
> On Fri, 2019-02-01 at 08:24 -0700, Jens Axboe wrote:
>> +int iomap_dio_iopoll(struct kiocb *kiocb, bool spin)
>> +{
>> +	struct request_queue *q = READ_ONCE(kiocb->private);
>> +
>> +	if (!q)
>> +		return 0;
>> +	return blk_poll(q, READ_ONCE(kiocb->ki_cookie), spin);
>> +}
>> +EXPORT_SYMBOL_GPL(iomap_dio_iopoll);
> 
> 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->private has been read
> and before blk_poll() is called?

The completion event is split from the reap, the latter being the one that
would put the file. So we're never going to call into ->iopoll() for a
kiocb where we've done the file put.

-- 
Jens Axboe




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux