Commit 0e35afbc8b054e04a35faa796c72abb3b82bd33b
Committed by
James Bottomley
1 parent
de6b20385b
[SCSI] libosd: osd_req_{read,write}_kern new API
By popular demand, define usefull wrappers for osd_req_read/write that recieve kernel pointers. All users had their own. Also remove these from exofs Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Showing 4 changed files with 32 additions and 32 deletions Side-by-side Diff
drivers/scsi/osd/osd_initiator.c
... | ... | @@ -789,6 +789,20 @@ |
789 | 789 | } |
790 | 790 | EXPORT_SYMBOL(osd_req_write); |
791 | 791 | |
792 | +int osd_req_write_kern(struct osd_request *or, | |
793 | + const struct osd_obj_id *obj, u64 offset, void* buff, u64 len) | |
794 | +{ | |
795 | + struct request_queue *req_q = or->osd_dev->scsi_device->request_queue; | |
796 | + struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL); | |
797 | + | |
798 | + if (IS_ERR(bio)) | |
799 | + return PTR_ERR(bio); | |
800 | + | |
801 | + osd_req_write(or, obj, bio, offset); | |
802 | + return 0; | |
803 | +} | |
804 | +EXPORT_SYMBOL(osd_req_write_kern); | |
805 | + | |
792 | 806 | /*TODO: void osd_req_append(struct osd_request *, |
793 | 807 | const struct osd_obj_id *, struct bio *data_out); */ |
794 | 808 | /*TODO: void osd_req_create_write(struct osd_request *, |
... | ... | @@ -823,6 +837,20 @@ |
823 | 837 | or->in.total_bytes = bio->bi_size; |
824 | 838 | } |
825 | 839 | EXPORT_SYMBOL(osd_req_read); |
840 | + | |
841 | +int osd_req_read_kern(struct osd_request *or, | |
842 | + const struct osd_obj_id *obj, u64 offset, void* buff, u64 len) | |
843 | +{ | |
844 | + struct request_queue *req_q = or->osd_dev->scsi_device->request_queue; | |
845 | + struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL); | |
846 | + | |
847 | + if (IS_ERR(bio)) | |
848 | + return PTR_ERR(bio); | |
849 | + | |
850 | + osd_req_read(or, obj, bio, offset); | |
851 | + return 0; | |
852 | +} | |
853 | +EXPORT_SYMBOL(osd_req_read_kern); | |
826 | 854 | |
827 | 855 | void osd_req_get_attributes(struct osd_request *or, |
828 | 856 | const struct osd_obj_id *obj) |
fs/exofs/common.h
... | ... | @@ -175,11 +175,5 @@ |
175 | 175 | |
176 | 176 | int extract_attr_from_req(struct osd_request *or, struct osd_attr *attr); |
177 | 177 | |
178 | -int osd_req_read_kern(struct osd_request *or, | |
179 | - const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | |
180 | - | |
181 | -int osd_req_write_kern(struct osd_request *or, | |
182 | - const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | |
183 | - | |
184 | 178 | #endif /*ifndef __EXOFS_COM_H__*/ |
fs/exofs/osd.c
... | ... | @@ -125,30 +125,4 @@ |
125 | 125 | |
126 | 126 | return -EIO; |
127 | 127 | } |
128 | - | |
129 | -int osd_req_read_kern(struct osd_request *or, | |
130 | - const struct osd_obj_id *obj, u64 offset, void* buff, u64 len) | |
131 | -{ | |
132 | - struct request_queue *req_q = or->osd_dev->scsi_device->request_queue; | |
133 | - struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL); | |
134 | - | |
135 | - if (!bio) | |
136 | - return -ENOMEM; | |
137 | - | |
138 | - osd_req_read(or, obj, bio, offset); | |
139 | - return 0; | |
140 | -} | |
141 | - | |
142 | -int osd_req_write_kern(struct osd_request *or, | |
143 | - const struct osd_obj_id *obj, u64 offset, void* buff, u64 len) | |
144 | -{ | |
145 | - struct request_queue *req_q = or->osd_dev->scsi_device->request_queue; | |
146 | - struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL); | |
147 | - | |
148 | - if (!bio) | |
149 | - return -ENOMEM; | |
150 | - | |
151 | - osd_req_write(or, obj, bio, offset); | |
152 | - return 0; | |
153 | -} |
include/scsi/osd_initiator.h
... | ... | @@ -364,6 +364,8 @@ |
364 | 364 | |
365 | 365 | void osd_req_write(struct osd_request *or, |
366 | 366 | const struct osd_obj_id *, struct bio *data_out, u64 offset); |
367 | +int osd_req_write_kern(struct osd_request *or, | |
368 | + const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | |
367 | 369 | void osd_req_append(struct osd_request *or, |
368 | 370 | const struct osd_obj_id *, struct bio *data_out);/* NI */ |
369 | 371 | void osd_req_create_write(struct osd_request *or, |
... | ... | @@ -379,6 +381,8 @@ |
379 | 381 | |
380 | 382 | void osd_req_read(struct osd_request *or, |
381 | 383 | const struct osd_obj_id *, struct bio *data_in, u64 offset); |
384 | +int osd_req_read_kern(struct osd_request *or, | |
385 | + const struct osd_obj_id *obj, u64 offset, void *buff, u64 len); | |
382 | 386 | |
383 | 387 | /* |
384 | 388 | * Root/Partition/Collection/Object Attributes commands |