Skip to content

Commit

Permalink
scsi/osd: remove the gfp argument to osd_start_request
Browse files Browse the repository at this point in the history
Always GFP_KERNEL, and keeping it would cause serious complications for
the next change.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Christoph Hellwig authored and Jens Axboe committed May 14, 2018
1 parent 058147b commit ac613e4
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 24 deletions.
24 changes: 11 additions & 13 deletions drivers/scsi/osd/osd_initiator.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ static int _osd_get_print_system_info(struct osd_dev *od,
int nelem = ARRAY_SIZE(get_attrs), a = 0;
int ret;

or = osd_start_request(od, GFP_KERNEL);
or = osd_start_request(od);
if (!or)
return -ENOMEM;

Expand Down Expand Up @@ -409,16 +409,15 @@ static void _osd_request_free(struct osd_request *or)
kfree(or);
}

struct osd_request *osd_start_request(struct osd_dev *dev, gfp_t gfp)
struct osd_request *osd_start_request(struct osd_dev *dev)
{
struct osd_request *or;

or = _osd_request_alloc(gfp);
or = _osd_request_alloc(GFP_KERNEL);
if (!or)
return NULL;

or->osd_dev = dev;
or->alloc_flags = gfp;
or->timeout = dev->def_timeout;
or->retries = OSD_REQ_RETRIES;

Expand Down Expand Up @@ -546,7 +545,7 @@ static int _osd_realloc_seg(struct osd_request *or,
if (seg->alloc_size >= max_bytes)
return 0;

buff = krealloc(seg->buff, max_bytes, or->alloc_flags);
buff = krealloc(seg->buff, max_bytes, GFP_KERNEL);
if (!buff) {
OSD_ERR("Failed to Realloc %d-bytes was-%d\n", max_bytes,
seg->alloc_size);
Expand Down Expand Up @@ -728,7 +727,7 @@ static int _osd_req_list_objects(struct osd_request *or,
_osd_req_encode_olist(or, list);

WARN_ON(or->in.bio);
bio = bio_map_kern(q, list, len, or->alloc_flags);
bio = bio_map_kern(q, list, len, GFP_KERNEL);
if (IS_ERR(bio)) {
OSD_ERR("!!! Failed to allocate list_objects BIO\n");
return PTR_ERR(bio);
Expand Down Expand Up @@ -1190,14 +1189,14 @@ static int _req_append_segment(struct osd_request *or,
pad_buff = io->pad_buff;

ret = blk_rq_map_kern(io->req->q, io->req, pad_buff, padding,
or->alloc_flags);
GFP_KERNEL);
if (ret)
return ret;
io->total_bytes += padding;
}

ret = blk_rq_map_kern(io->req->q, io->req, seg->buff, seg->total_bytes,
or->alloc_flags);
GFP_KERNEL);
if (ret)
return ret;

Expand Down Expand Up @@ -1564,14 +1563,14 @@ static int _osd_req_finalize_data_integrity(struct osd_request *or,
* osd_finalize_request and helpers
*/
static struct request *_make_request(struct request_queue *q, bool has_write,
struct _osd_io_info *oii, gfp_t flags)
struct _osd_io_info *oii)
{
struct request *req;
struct bio *bio = oii->bio;
int ret;

req = blk_get_request(q, has_write ? REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN,
flags);
GFP_KERNEL);
if (IS_ERR(req))
return req;

Expand All @@ -1589,13 +1588,12 @@ static struct request *_make_request(struct request_queue *q, bool has_write,
static int _init_blk_request(struct osd_request *or,
bool has_in, bool has_out)
{
gfp_t flags = or->alloc_flags;
struct scsi_device *scsi_device = or->osd_dev->scsi_device;
struct request_queue *q = scsi_device->request_queue;
struct request *req;
int ret;

req = _make_request(q, has_out, has_out ? &or->out : &or->in, flags);
req = _make_request(q, has_out, has_out ? &or->out : &or->in);
if (IS_ERR(req)) {
ret = PTR_ERR(req);
goto out;
Expand All @@ -1611,7 +1609,7 @@ static int _init_blk_request(struct osd_request *or,
or->out.req = req;
if (has_in) {
/* allocate bidi request */
req = _make_request(q, false, &or->in, flags);
req = _make_request(q, false, &or->in);
if (IS_ERR(req)) {
OSD_DEBUG("blk_get_request for bidi failed\n");
ret = PTR_ERR(req);
Expand Down
10 changes: 5 additions & 5 deletions fs/exofs/ore.c
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@ int ore_create(struct ore_io_state *ios)
for (i = 0; i < ios->oc->numdevs; i++) {
struct osd_request *or;

or = osd_start_request(_ios_od(ios, i), GFP_KERNEL);
or = osd_start_request(_ios_od(ios, i));
if (unlikely(!or)) {
ORE_ERR("%s: osd_start_request failed\n", __func__);
ret = -ENOMEM;
Expand All @@ -815,7 +815,7 @@ int ore_remove(struct ore_io_state *ios)
for (i = 0; i < ios->oc->numdevs; i++) {
struct osd_request *or;

or = osd_start_request(_ios_od(ios, i), GFP_KERNEL);
or = osd_start_request(_ios_od(ios, i));
if (unlikely(!or)) {
ORE_ERR("%s: osd_start_request failed\n", __func__);
ret = -ENOMEM;
Expand Down Expand Up @@ -847,7 +847,7 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp];
struct osd_request *or;

or = osd_start_request(_ios_od(ios, dev), GFP_KERNEL);
or = osd_start_request(_ios_od(ios, dev));
if (unlikely(!or)) {
ORE_ERR("%s: osd_start_request failed\n", __func__);
ret = -ENOMEM;
Expand Down Expand Up @@ -966,7 +966,7 @@ int _ore_read_mirror(struct ore_io_state *ios, unsigned cur_comp)
return 0; /* Just an empty slot */

first_dev = per_dev->dev + first_dev % ios->layout->mirrors_p1;
or = osd_start_request(_ios_od(ios, first_dev), GFP_KERNEL);
or = osd_start_request(_ios_od(ios, first_dev));
if (unlikely(!or)) {
ORE_ERR("%s: osd_start_request failed\n", __func__);
return -ENOMEM;
Expand Down Expand Up @@ -1060,7 +1060,7 @@ static int _truncate_mirrors(struct ore_io_state *ios, unsigned cur_comp,
struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp];
struct osd_request *or;

or = osd_start_request(_ios_od(ios, cur_comp), GFP_KERNEL);
or = osd_start_request(_ios_od(ios, cur_comp));
if (unlikely(!or)) {
ORE_ERR("%s: osd_start_request failed\n", __func__);
return -ENOMEM;
Expand Down
2 changes: 1 addition & 1 deletion fs/exofs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ void exofs_make_credential(u8 cred_a[OSD_CAP_LEN], const struct osd_obj_id *obj)
static int exofs_read_kern(struct osd_dev *od, u8 *cred, struct osd_obj_id *obj,
u64 offset, void *p, unsigned length)
{
struct osd_request *or = osd_start_request(od, GFP_KERNEL);
struct osd_request *or = osd_start_request(od);
/* struct osd_sense_info osi = {.key = 0};*/
int ret;

Expand Down
6 changes: 1 addition & 5 deletions include/scsi/osd_initiator.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,6 @@ struct osd_request {
u8 *pad_buff;
} out, in;

gfp_t alloc_flags;
unsigned timeout;
unsigned retries;
unsigned sense_len;
Expand Down Expand Up @@ -202,14 +201,11 @@ static inline bool osd_req_is_ver1(struct osd_request *or)
*
* @osd_dev: OSD device that holds the scsi-device and default values
* that the request is associated with.
* @gfp: The allocation flags to use for request allocation, and all
* subsequent allocations. This will be stored at
* osd_request->alloc_flags, can be changed by user later
*
* Allocate osd_request and initialize all members to the
* default/initial state.
*/
struct osd_request *osd_start_request(struct osd_dev *od, gfp_t gfp);
struct osd_request *osd_start_request(struct osd_dev *od);

enum osd_req_options {
OSD_REQ_FUA = 0x08, /* Force Unit Access */
Expand Down

0 comments on commit ac613e4

Please sign in to comment.