46 #include <linux/export.h>
47 #include <scsi/scsi.h>
95 switch (srb->
cmnd[0]) {
151 sg = scsi_sglist(srb);
159 while (cnt < buflen && sg) {
165 if (sglen > buflen - cnt) {
168 sglen = buflen -
cnt;
181 unsigned int plen =
min(sglen, (
unsigned int)
183 unsigned char *
ptr =
kmap(page);
186 memcpy(ptr + poff, buffer + cnt, plen);
188 memcpy(buffer + cnt, ptr + poff, plen);
214 buflen =
min(buflen, scsi_bufflen(srb));
217 if (buflen < scsi_bufflen(srb))
218 scsi_set_resid(srb, scsi_bufflen(srb) - buflen);