https://github.com/torvalds/linux
Revision db3b5848ea6440968fcdd29b80514d0de044bb7c authored by Kiyoshi Ueda on 17 June 2005, 14:15:10 UTC, committed by Jens Axboe on 17 June 2005, 14:15:10 UTC
__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>
1 parent c374f12
History
Tip revision: db3b5848ea6440968fcdd29b80514d0de044bb7c authored by Kiyoshi Ueda on 17 June 2005, 14:15:10 UTC
When cfq I/O scheduler is selected, get_request() in __make_request() calls
Tip revision: db3b584
File Mode Size
reed_solomon
zlib_deflate
zlib_inflate
Kconfig -rw-r--r-- 1.3 KB
Kconfig.debug -rw-r--r-- 5.6 KB
Makefile -rw-r--r-- 1.2 KB
bitmap.c -rw-r--r-- 16.2 KB
bust_spinlocks.c -rw-r--r-- 931 bytes
cmdline.c -rw-r--r-- 2.7 KB
crc-ccitt.c -rw-r--r-- 3.0 KB
crc32.c -rw-r--r-- 15.9 KB
crc32defs.h -rw-r--r-- 1.0 KB
ctype.c -rw-r--r-- 1.3 KB
dec_and_lock.c -rw-r--r-- 963 bytes
div64.c -rw-r--r-- 1.3 KB
dump_stack.c -rw-r--r-- 290 bytes
errno.c -rw-r--r-- 89 bytes
extable.c -rw-r--r-- 2.1 KB
find_next_bit.c -rw-r--r-- 1.1 KB
gen_crc32table.c -rw-r--r-- 1.8 KB
halfmd4.c -rw-r--r-- 2.0 KB
idr.c -rw-r--r-- 9.4 KB
inflate.c -rw-r--r-- 37.0 KB
int_sqrt.c -rw-r--r-- 514 bytes
iomap.c -rw-r--r-- 6.2 KB
kernel_lock.c -rw-r--r-- 5.6 KB
kobject.c -rw-r--r-- 11.1 KB
kobject_uevent.c -rw-r--r-- 8.8 KB
kref.c -rw-r--r-- 1.6 KB
libcrc32c.c -rw-r--r-- 6.5 KB
parser.c -rw-r--r-- 5.8 KB
prio_tree.c -rw-r--r-- 12.2 KB
radix-tree.c -rw-r--r-- 19.4 KB
rbtree.c -rw-r--r-- 8.9 KB
rwsem-spinlock.c -rw-r--r-- 7.5 KB
rwsem.c -rw-r--r-- 6.7 KB
sha1.c -rw-r--r-- 2.4 KB
sort.c -rw-r--r-- 2.4 KB
string.c -rw-r--r-- 12.0 KB
vsprintf.c -rw-r--r-- 18.3 KB

back to top