Skip to content

Commit

Permalink
[SCSI] libosd: osd_req_{read,write}_kern new API
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Boaz Harrosh authored and James Bottomley committed Jun 10, 2009
1 parent de6b203 commit 0e35afb
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 32 deletions.
28 changes: 28 additions & 0 deletions drivers/scsi/osd/osd_initiator.c
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,20 @@ void osd_req_write(struct osd_request *or,
}
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 *,
const struct osd_obj_id *, struct bio *data_out); */
/*TODO: void osd_req_create_write(struct osd_request *,
Expand Down Expand Up @@ -824,6 +838,20 @@ void osd_req_read(struct osd_request *or,
}
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,
const struct osd_obj_id *obj)
{
Expand Down
6 changes: 0 additions & 6 deletions fs/exofs/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 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__*/
26 changes: 0 additions & 26 deletions fs/exofs/osd.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,29 +125,3 @@ int extract_attr_from_req(struct osd_request *or, struct osd_attr *attr)

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;
}
4 changes: 4 additions & 0 deletions include/scsi/osd_initiator.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
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,
const struct osd_obj_id *, struct bio *data_out);/* NI */
void osd_req_create_write(struct osd_request *or,
Expand All @@ -379,6 +381,8 @@ void osd_req_flush_object(struct osd_request *or,

void osd_req_read(struct osd_request *or,
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
Expand Down

0 comments on commit 0e35afb

Please sign in to comment.