[PATCH] USB: ub 1/3: Axboe's quasi-S/G
authorPete Zaitcev <zaitcev@redhat.com>
Sun, 31 Jul 2005 05:38:30 +0000 (22:38 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 8 Sep 2005 23:22:39 +0000 (16:22 -0700)
commitba6abf1352dc83e500a71e3ad9b39de0337f0c6b
tree9ffeef3d2e7c36798ff38ffc450b1d3fb15c7174
parent64be07585893d207d23f8516948222faf746aa43
[PATCH] USB: ub 1/3: Axboe's quasi-S/G

This the quasi-S/G patch for ub as suggested by Jens Axboe at OLS and
implemented that night before 4 a.m. Surprisingly, it worked right away...
Alas, I had to skip some OLS partying, but it was for the good cause.
Now the speed of ub is quite acceptable even on partitions with small
block size.

The ub does not really support S/G. Instead, it just tells the block
layer that it does. Then, most of the time, the block layer merges
requests and passes single-segmnent requests down to ub; everything
works as before. Very rarely ub gets an unmerged S/G request. In such
case, it issues several commands to the device.

I added a small array of counters to monitor the merging (sg_stat).
This may be dropped later.

Signed-off-by: Pete Zaitcev <zaitcev@yahoo.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/block/ub.c