СµÜĿǰ²Î¿¼¡¶LINUXÇý¶¯ µÚ3°æ¡·µÄ¿éÉ豸Çý¶¯sbull.c£¬ÔÚд×Ô¼ºµÄÇý¶¯³ÌÐò£¬Ä¿Ç°µÄÎÊÌâÊÇ£º
±ÈÈ磺ÔÚÓà CP ÃüÁ±´ÎļþµÄʱºò£¬
µ±µ×²ã¶Áдº¯Êý³ö´íºó£¬Éϲ㻹ÔÚ²»Í£µÄ·¢ËÍеĶÁдÇëÇ󣬵±ËùÓеÄÇëÇó·¢ËÍÍêÁ˺ó£¬ÏµÍ³²ÅÍ˳ö£¬»Øµ½ÃüÁîÐÐ״̬¡£
ÇëÎÊ£¬ÓÐûÓÐʲô°ì·¨£¬ÈÃϵͳ²»ÔÚ´¦ÀíºóÐøµÄÇëÇ󣬲¢Á¢¼´Í˳ö»Øµ½ÃüÁîÐÐ×´Ì¬ÄØ£¿
»¹Çë¸÷λ´óÏÀ¶à¶àÖ¸µã°¡£¬Ð¡µÜÏÈллÁË£¡£¡£¡
static void sbull_full_request(request_queue_t *q)
{
struct request *req;
int sectors_xferred;
struct sbull_dev *dev = q->queuedata;
while ((req = elv_next_request(q)) != NULL) {
if (! blk_fs_request(req)) {
printk (KERN_NOTICE "Skip non-fs request\n");
end_request(req, 0);
continue;
}
sectors_xferred = sbull_xfer_request(dev, req);
if (! end_that_request_first(req, 1, sectors_xferred)) {
blkdev_dequeue_request(req);
end_that_request_last(req);
}
}
}
gg940231 ÓÚ 2006-05-31 22:37:14·¢±í:
ÄÇλ´óÏÀÖ¸µãϰѣ¬ÏÈллÁË