kernels/linux-2.4.0/drivers/s390/block/mdisk.c
/*
 * the bottom half checks the status of request
 * on success it calls end_request and calls mdisk_request
 * if more transfer to do
 */
the bottom half checks the status of request
on success it calls end_request and calls mdisk_request
if more transfer to do
the bottom half checks the status of request on success it calls end_request and calls mdisk_request if more transfer to do
static void
do_mdisk_bh(void *data)
{
	mdisk_Dev *dev = (mdisk_Dev*) data;
	unsigned long flags;
	spin_lock_irqsave(&io_request_lock, flags);
	if (dev->status != 0x00) {
		printk("mnd: status of async rw %d",dev->status);
		end_request(0);
	} else {
	  if (CURRENT)
		mdisk_end_request(dev->nr_bhs);
	}
	if (CURRENT)
		mdisk_request(NULL);
	spin_unlock_irqrestore(&io_request_lock, flags);
}
static void do_mdisk_bh ( void * data ) { mdisk_Dev * dev = ( mdisk_Dev * ) data ; unsigned long flags ; spin_lock_irqsave ( & io_request_lock , flags ) ; if ( dev -> status != 0x00 ) { printk ( " " , dev -> status ) ; end_request ( 0 ) ; } else { if ( CURRENT ) mdisk_end_request ( dev -> nr_bhs ) ; } if ( CURRENT ) mdisk_request ( NULL ) ; spin_unlock_irqrestore ( & io_request_lock , flags ) ; }
the bottom half checks the status of request
 on success it calls end_request and calls mdisk_request
 if more transfer to do
the bottom half checks the status of request on success it calls end_request and calls mdisk_request if more transfer to do
/*
	 * check for status of asynchronous rw
	 */ /*
		 * end request for clustered requests
		 */ /*
	 * if more to do, call mdisk_request
	 */