Rusty Russell wrote: > On Monday 07 January 2008 17:37:41 Tejun Heo wrote: >> Rusty Russell wrote: >>> Hi Tejun, >>> >>> Nice try! Even ignoring the ugliness of undoing such an operation if >>> the caller doesn't expect you to mangle their chains, consider a >>> one-element sg array. :( >> Heh heh, that can be dealt with by skipping the first chain if the first >> chain is empty after chaining. Please take a look at >> ata_sg_setup_extra() in the following. >> >> http://git.kernel.org/?p=linux/kernel/git/tj/libata-dev.git;a=blob;f=driver >> s/ata/libata-core.c;h=32dde5bbc75ed53e89ac17040da2cd0621a37161;hb=c8847e473a >> 4a2844244784226eb362be10d52ce9 >> >> That said, yeah, it's seriously ugly. Restoring the original sg is ugly >> too. I definitely agree that we need some improvements here. > > Erk, that's beyond ugly, into actual evil. /me agrees. > To make this general you need to find the last N 1-element chains (but SCSI > doesn't do this of course). Oh the horror... /me agrees. > I'd be remiss if I didn't mention that the sg_ring ata patches were > straightforward, and indescribably beautiful if compared to this! /me agrees. As long as this can be made sane using one unified interface, I don't care whether it's sg_ring, table or dish. Thanks. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html