![]() __cfq_get_queue(). __cfq_get_queue() finds an existing queue (struct cfq_queue) of the current process for the device and returns it. If it's not found, __cfq_get_queue() creates and returns a new one if __cfq_get_queue() is called with __GFP_WAIT flag, or __cfq_get_queue() returns NULL (this means that get_request() fails) if no __GFP_WAIT flag. On the other hand, in __make_request(), get_request() is called without __GFP_WAIT flag at the first time. Thus, the get_request() fails when there is no existing queue, typically when it's called for the first I/O request of the process to the device. Though it will be followed by get_request_wait() for general case, __make_request() will just end the I/O with an error (EWOULDBLOCK) when the request was for read-ahead. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> |
||
---|---|---|
.. | ||
aoe | ||
paride | ||
DAC960.c | ||
DAC960.h | ||
Kconfig | ||
Kconfig.iosched | ||
Makefile | ||
acsi.c | ||
acsi_slm.c | ||
amiflop.c | ||
as-iosched.c | ||
ataflop.c | ||
cciss.c | ||
cciss.h | ||
cciss_cmd.h | ||
cciss_scsi.c | ||
cciss_scsi.h | ||
cfq-iosched.c | ||
cpqarray.c | ||
cpqarray.h | ||
cryptoloop.c | ||
deadline-iosched.c | ||
elevator.c | ||
floppy.c | ||
genhd.c | ||
ida_cmd.h | ||
ida_ioctl.h | ||
ioctl.c | ||
ll_rw_blk.c | ||
loop.c | ||
nbd.c | ||
noop-iosched.c | ||
pktcdvd.c | ||
ps2esdi.c | ||
rd.c | ||
scsi_ioctl.c | ||
smart1,2.h | ||
swim3.c | ||
swim_iop.c | ||
sx8.c | ||
ub.c | ||
umem.c | ||
viodasd.c | ||
xd.c | ||
xd.h | ||
z2ram.c |