diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/osd/osd_initiator.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c index ba2ebae305cd..3f5ec578e6c6 100644 --- a/drivers/scsi/osd/osd_initiator.c +++ b/drivers/scsi/osd/osd_initiator.c | |||
@@ -779,13 +779,14 @@ EXPORT_SYMBOL(osd_req_remove_object); | |||
779 | */ | 779 | */ |
780 | 780 | ||
781 | void osd_req_write(struct osd_request *or, | 781 | void osd_req_write(struct osd_request *or, |
782 | const struct osd_obj_id *obj, struct bio *bio, u64 offset) | 782 | const struct osd_obj_id *obj, u64 offset, |
783 | struct bio *bio, u64 len) | ||
783 | { | 784 | { |
784 | _osd_req_encode_common(or, OSD_ACT_WRITE, obj, offset, bio->bi_size); | 785 | _osd_req_encode_common(or, OSD_ACT_WRITE, obj, offset, len); |
785 | WARN_ON(or->out.bio || or->out.total_bytes); | 786 | WARN_ON(or->out.bio || or->out.total_bytes); |
786 | bio->bi_rw |= (1 << BIO_RW); | 787 | WARN_ON(0 == bio_rw_flagged(bio, BIO_RW)); |
787 | or->out.bio = bio; | 788 | or->out.bio = bio; |
788 | or->out.total_bytes = bio->bi_size; | 789 | or->out.total_bytes = len; |
789 | } | 790 | } |
790 | EXPORT_SYMBOL(osd_req_write); | 791 | EXPORT_SYMBOL(osd_req_write); |
791 | 792 | ||
@@ -798,7 +799,8 @@ int osd_req_write_kern(struct osd_request *or, | |||
798 | if (IS_ERR(bio)) | 799 | if (IS_ERR(bio)) |
799 | return PTR_ERR(bio); | 800 | return PTR_ERR(bio); |
800 | 801 | ||
801 | osd_req_write(or, obj, bio, offset); | 802 | bio->bi_rw |= (1 << BIO_RW); /* FIXME: bio_set_dir() */ |
803 | osd_req_write(or, obj, offset, bio, len); | ||
802 | return 0; | 804 | return 0; |
803 | } | 805 | } |
804 | EXPORT_SYMBOL(osd_req_write_kern); | 806 | EXPORT_SYMBOL(osd_req_write_kern); |
@@ -828,13 +830,14 @@ void osd_req_flush_object(struct osd_request *or, | |||
828 | EXPORT_SYMBOL(osd_req_flush_object); | 830 | EXPORT_SYMBOL(osd_req_flush_object); |
829 | 831 | ||
830 | void osd_req_read(struct osd_request *or, | 832 | void osd_req_read(struct osd_request *or, |
831 | const struct osd_obj_id *obj, struct bio *bio, u64 offset) | 833 | const struct osd_obj_id *obj, u64 offset, |
834 | struct bio *bio, u64 len) | ||
832 | { | 835 | { |
833 | _osd_req_encode_common(or, OSD_ACT_READ, obj, offset, bio->bi_size); | 836 | _osd_req_encode_common(or, OSD_ACT_READ, obj, offset, len); |
834 | WARN_ON(or->in.bio || or->in.total_bytes); | 837 | WARN_ON(or->in.bio || or->in.total_bytes); |
835 | bio->bi_rw &= ~(1 << BIO_RW); | 838 | WARN_ON(1 == bio_rw_flagged(bio, BIO_RW)); |
836 | or->in.bio = bio; | 839 | or->in.bio = bio; |
837 | or->in.total_bytes = bio->bi_size; | 840 | or->in.total_bytes = len; |
838 | } | 841 | } |
839 | EXPORT_SYMBOL(osd_req_read); | 842 | EXPORT_SYMBOL(osd_req_read); |
840 | 843 | ||
@@ -847,7 +850,7 @@ int osd_req_read_kern(struct osd_request *or, | |||
847 | if (IS_ERR(bio)) | 850 | if (IS_ERR(bio)) |
848 | return PTR_ERR(bio); | 851 | return PTR_ERR(bio); |
849 | 852 | ||
850 | osd_req_read(or, obj, bio, offset); | 853 | osd_req_read(or, obj, offset, bio, len); |
851 | return 0; | 854 | return 0; |
852 | } | 855 | } |
853 | EXPORT_SYMBOL(osd_req_read_kern); | 856 | EXPORT_SYMBOL(osd_req_read_kern); |