On Tue, 29 Apr 2008, Jens Axboe wrote:unplug is called on any wait_on_buffer (and similar calls) __wait_on_buffer -> sync_buffer -> blk_run_address_space -> blk_run_backing_dev -> bdi->unplug_io_fn(bdi, page); (I'm not sure that this was the IBM's case, I'm just guessing - this is the most obvious example where unplug is called repeatedly) There is not any test that the queue is plugged and there shouldn't be. If you have this situation dm-linear(unplugged) -> physical-disk(plugged) then uplung should be called on dm-linear (that will call dm-unplug method dm_unplug_all and that will unplug the disk). If you add the test of plugged queue to the upper layer, you mess this situation with stacked drivers completely. The test for already plugged queue should be at the lowest physical device driver, not in upper layers. Mikulas --
| Greg Kroah-Hartman | [PATCH 027/196] tifm: Convert from class_device to device for TI flash media |
| Kok, Auke | Re: Linux 2.6.21-rc1 |
| Trent Piepho | Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code |
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Arjan van de Ven | Re: [GIT]: Networking |
| Ingo Molnar | Re: [PATCH 01/10] x86: add Kconfig entry for DMA-API debugging |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
