diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2009-05-24 13:04:26 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-10 09:59:52 -0400 |
commit | 62f469b596dd0aadf046a69027087c18db43734e (patch) | |
tree | 2e7fd67763b328fb47c3793e8a9d5a13ed49ea33 /include/scsi | |
parent | 546881aea9787ed5c626ac99ab80158ea9ae0515 (diff) |
[SCSI] libosd: osd_req_{read,write} takes a length parameter
For supporting of chained-bios we can not inspect the first
bio only, as before. Caller shall pass the total length of the
request, ie. sum_bytes(bio-chain).
Also since the bio might be a chain we don't set it's direction
on behalf of it's callers. The bio direction should be properly
set prior to this call. So fix a couple of write users that now
need to set the bio direction properly
[In this patch I change both library code and user sites at
exofs, to make it easy on integration. It should be submitted
via James's scsi-misc tree.]
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
CC: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/osd_initiator.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/scsi/osd_initiator.h b/include/scsi/osd_initiator.h index 6132790d678f..8c1e3b804afd 100644 --- a/include/scsi/osd_initiator.h +++ b/include/scsi/osd_initiator.h | |||
@@ -363,7 +363,7 @@ void osd_req_create_object(struct osd_request *or, struct osd_obj_id *); | |||
363 | void osd_req_remove_object(struct osd_request *or, struct osd_obj_id *); | 363 | void osd_req_remove_object(struct osd_request *or, struct osd_obj_id *); |
364 | 364 | ||
365 | void osd_req_write(struct osd_request *or, | 365 | void osd_req_write(struct osd_request *or, |
366 | const struct osd_obj_id *, struct bio *data_out, u64 offset); | 366 | const struct osd_obj_id *obj, u64 offset, struct bio *bio, u64 len); |
367 | int osd_req_write_kern(struct osd_request *or, | 367 | int osd_req_write_kern(struct osd_request *or, |
368 | const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | 368 | const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); |
369 | void osd_req_append(struct osd_request *or, | 369 | void osd_req_append(struct osd_request *or, |
@@ -380,7 +380,7 @@ void osd_req_flush_object(struct osd_request *or, | |||
380 | /*V2*/ u64 offset, /*V2*/ u64 len); | 380 | /*V2*/ u64 offset, /*V2*/ u64 len); |
381 | 381 | ||
382 | void osd_req_read(struct osd_request *or, | 382 | void osd_req_read(struct osd_request *or, |
383 | const struct osd_obj_id *, struct bio *data_in, u64 offset); | 383 | const struct osd_obj_id *obj, u64 offset, struct bio *bio, u64 len); |
384 | int osd_req_read_kern(struct osd_request *or, | 384 | int osd_req_read_kern(struct osd_request *or, |
385 | const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | 385 | const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); |
386 | 386 | ||