mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
[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>
This commit is contained in:
parent
de6b20385b
commit
0e35afbc8b
@ -789,6 +789,20 @@ void osd_req_write(struct osd_request *or,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(osd_req_write);
|
EXPORT_SYMBOL(osd_req_write);
|
||||||
|
|
||||||
|
int osd_req_write_kern(struct osd_request *or,
|
||||||
|
const struct osd_obj_id *obj, u64 offset, void* buff, u64 len)
|
||||||
|
{
|
||||||
|
struct request_queue *req_q = or->osd_dev->scsi_device->request_queue;
|
||||||
|
struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL);
|
||||||
|
|
||||||
|
if (IS_ERR(bio))
|
||||||
|
return PTR_ERR(bio);
|
||||||
|
|
||||||
|
osd_req_write(or, obj, bio, offset);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(osd_req_write_kern);
|
||||||
|
|
||||||
/*TODO: void osd_req_append(struct osd_request *,
|
/*TODO: void osd_req_append(struct osd_request *,
|
||||||
const struct osd_obj_id *, struct bio *data_out); */
|
const struct osd_obj_id *, struct bio *data_out); */
|
||||||
/*TODO: void osd_req_create_write(struct osd_request *,
|
/*TODO: void osd_req_create_write(struct osd_request *,
|
||||||
@ -824,6 +838,20 @@ void osd_req_read(struct osd_request *or,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(osd_req_read);
|
EXPORT_SYMBOL(osd_req_read);
|
||||||
|
|
||||||
|
int osd_req_read_kern(struct osd_request *or,
|
||||||
|
const struct osd_obj_id *obj, u64 offset, void* buff, u64 len)
|
||||||
|
{
|
||||||
|
struct request_queue *req_q = or->osd_dev->scsi_device->request_queue;
|
||||||
|
struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL);
|
||||||
|
|
||||||
|
if (IS_ERR(bio))
|
||||||
|
return PTR_ERR(bio);
|
||||||
|
|
||||||
|
osd_req_read(or, obj, bio, offset);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(osd_req_read_kern);
|
||||||
|
|
||||||
void osd_req_get_attributes(struct osd_request *or,
|
void osd_req_get_attributes(struct osd_request *or,
|
||||||
const struct osd_obj_id *obj)
|
const struct osd_obj_id *obj)
|
||||||
{
|
{
|
||||||
|
@ -175,10 +175,4 @@ int exofs_async_op(struct osd_request *or,
|
|||||||
|
|
||||||
int extract_attr_from_req(struct osd_request *or, struct osd_attr *attr);
|
int extract_attr_from_req(struct osd_request *or, struct osd_attr *attr);
|
||||||
|
|
||||||
int osd_req_read_kern(struct osd_request *or,
|
|
||||||
const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
|
|
||||||
|
|
||||||
int osd_req_write_kern(struct osd_request *or,
|
|
||||||
const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
|
|
||||||
|
|
||||||
#endif /*ifndef __EXOFS_COM_H__*/
|
#endif /*ifndef __EXOFS_COM_H__*/
|
||||||
|
@ -125,29 +125,3 @@ int extract_attr_from_req(struct osd_request *or, struct osd_attr *attr)
|
|||||||
|
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
int osd_req_read_kern(struct osd_request *or,
|
|
||||||
const struct osd_obj_id *obj, u64 offset, void* buff, u64 len)
|
|
||||||
{
|
|
||||||
struct request_queue *req_q = or->osd_dev->scsi_device->request_queue;
|
|
||||||
struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!bio)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
osd_req_read(or, obj, bio, offset);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int osd_req_write_kern(struct osd_request *or,
|
|
||||||
const struct osd_obj_id *obj, u64 offset, void* buff, u64 len)
|
|
||||||
{
|
|
||||||
struct request_queue *req_q = or->osd_dev->scsi_device->request_queue;
|
|
||||||
struct bio *bio = bio_map_kern(req_q, buff, len, GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!bio)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
osd_req_write(or, obj, bio, offset);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
@ -364,6 +364,8 @@ void osd_req_remove_object(struct osd_request *or, struct osd_obj_id *);
|
|||||||
|
|
||||||
void osd_req_write(struct osd_request *or,
|
void osd_req_write(struct osd_request *or,
|
||||||
const struct osd_obj_id *, struct bio *data_out, u64 offset);
|
const struct osd_obj_id *, struct bio *data_out, u64 offset);
|
||||||
|
int osd_req_write_kern(struct osd_request *or,
|
||||||
|
const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
|
||||||
void osd_req_append(struct osd_request *or,
|
void osd_req_append(struct osd_request *or,
|
||||||
const struct osd_obj_id *, struct bio *data_out);/* NI */
|
const struct osd_obj_id *, struct bio *data_out);/* NI */
|
||||||
void osd_req_create_write(struct osd_request *or,
|
void osd_req_create_write(struct osd_request *or,
|
||||||
@ -379,6 +381,8 @@ void osd_req_flush_object(struct osd_request *or,
|
|||||||
|
|
||||||
void osd_req_read(struct osd_request *or,
|
void osd_req_read(struct osd_request *or,
|
||||||
const struct osd_obj_id *, struct bio *data_in, u64 offset);
|
const struct osd_obj_id *, struct bio *data_in, u64 offset);
|
||||||
|
int osd_req_read_kern(struct osd_request *or,
|
||||||
|
const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Root/Partition/Collection/Object Attributes commands
|
* Root/Partition/Collection/Object Attributes commands
|
||||||
|
Loading…
Reference in New Issue
Block a user