diff options
author | Christoph Hellwig <hch@lst.de> | 2018-05-09 03:54:03 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-05-14 10:55:09 -0400 |
commit | ac613e4566f9df3a8cf8b18e2dcc8af087143868 (patch) | |
tree | 84c5f6a9caaf5a6ae58c378418e092a60495e184 | |
parent | 058147bc9435b07c573ce50e9e02b18eaae9b4ea (diff) |
scsi/osd: remove the gfp argument to osd_start_request
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>
-rw-r--r-- | drivers/scsi/osd/osd_initiator.c | 24 | ||||
-rw-r--r-- | fs/exofs/ore.c | 10 | ||||
-rw-r--r-- | fs/exofs/super.c | 2 | ||||
-rw-r--r-- | include/scsi/osd_initiator.h | 6 |
4 files changed, 18 insertions, 24 deletions
diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c index e18877177f1b..f48bae267dc2 100644 --- a/drivers/scsi/osd/osd_initiator.c +++ b/drivers/scsi/osd/osd_initiator.c | |||
@@ -99,7 +99,7 @@ static int _osd_get_print_system_info(struct osd_dev *od, | |||
99 | int nelem = ARRAY_SIZE(get_attrs), a = 0; | 99 | int nelem = ARRAY_SIZE(get_attrs), a = 0; |
100 | int ret; | 100 | int ret; |
101 | 101 | ||
102 | or = osd_start_request(od, GFP_KERNEL); | 102 | or = osd_start_request(od); |
103 | if (!or) | 103 | if (!or) |
104 | return -ENOMEM; | 104 | return -ENOMEM; |
105 | 105 | ||
@@ -409,16 +409,15 @@ static void _osd_request_free(struct osd_request *or) | |||
409 | kfree(or); | 409 | kfree(or); |
410 | } | 410 | } |
411 | 411 | ||
412 | struct osd_request *osd_start_request(struct osd_dev *dev, gfp_t gfp) | 412 | struct osd_request *osd_start_request(struct osd_dev *dev) |
413 | { | 413 | { |
414 | struct osd_request *or; | 414 | struct osd_request *or; |
415 | 415 | ||
416 | or = _osd_request_alloc(gfp); | 416 | or = _osd_request_alloc(GFP_KERNEL); |
417 | if (!or) | 417 | if (!or) |
418 | return NULL; | 418 | return NULL; |
419 | 419 | ||
420 | or->osd_dev = dev; | 420 | or->osd_dev = dev; |
421 | or->alloc_flags = gfp; | ||
422 | or->timeout = dev->def_timeout; | 421 | or->timeout = dev->def_timeout; |
423 | or->retries = OSD_REQ_RETRIES; | 422 | or->retries = OSD_REQ_RETRIES; |
424 | 423 | ||
@@ -546,7 +545,7 @@ static int _osd_realloc_seg(struct osd_request *or, | |||
546 | if (seg->alloc_size >= max_bytes) | 545 | if (seg->alloc_size >= max_bytes) |
547 | return 0; | 546 | return 0; |
548 | 547 | ||
549 | buff = krealloc(seg->buff, max_bytes, or->alloc_flags); | 548 | buff = krealloc(seg->buff, max_bytes, GFP_KERNEL); |
550 | if (!buff) { | 549 | if (!buff) { |
551 | OSD_ERR("Failed to Realloc %d-bytes was-%d\n", max_bytes, | 550 | OSD_ERR("Failed to Realloc %d-bytes was-%d\n", max_bytes, |
552 | seg->alloc_size); | 551 | seg->alloc_size); |
@@ -728,7 +727,7 @@ static int _osd_req_list_objects(struct osd_request *or, | |||
728 | _osd_req_encode_olist(or, list); | 727 | _osd_req_encode_olist(or, list); |
729 | 728 | ||
730 | WARN_ON(or->in.bio); | 729 | WARN_ON(or->in.bio); |
731 | bio = bio_map_kern(q, list, len, or->alloc_flags); | 730 | bio = bio_map_kern(q, list, len, GFP_KERNEL); |
732 | if (IS_ERR(bio)) { | 731 | if (IS_ERR(bio)) { |
733 | OSD_ERR("!!! Failed to allocate list_objects BIO\n"); | 732 | OSD_ERR("!!! Failed to allocate list_objects BIO\n"); |
734 | return PTR_ERR(bio); | 733 | return PTR_ERR(bio); |
@@ -1190,14 +1189,14 @@ static int _req_append_segment(struct osd_request *or, | |||
1190 | pad_buff = io->pad_buff; | 1189 | pad_buff = io->pad_buff; |
1191 | 1190 | ||
1192 | ret = blk_rq_map_kern(io->req->q, io->req, pad_buff, padding, | 1191 | ret = blk_rq_map_kern(io->req->q, io->req, pad_buff, padding, |
1193 | or->alloc_flags); | 1192 | GFP_KERNEL); |
1194 | if (ret) | 1193 | if (ret) |
1195 | return ret; | 1194 | return ret; |
1196 | io->total_bytes += padding; | 1195 | io->total_bytes += padding; |
1197 | } | 1196 | } |
1198 | 1197 | ||
1199 | ret = blk_rq_map_kern(io->req->q, io->req, seg->buff, seg->total_bytes, | 1198 | ret = blk_rq_map_kern(io->req->q, io->req, seg->buff, seg->total_bytes, |
1200 | or->alloc_flags); | 1199 | GFP_KERNEL); |
1201 | if (ret) | 1200 | if (ret) |
1202 | return ret; | 1201 | return ret; |
1203 | 1202 | ||
@@ -1564,14 +1563,14 @@ static int _osd_req_finalize_data_integrity(struct osd_request *or, | |||
1564 | * osd_finalize_request and helpers | 1563 | * osd_finalize_request and helpers |
1565 | */ | 1564 | */ |
1566 | static struct request *_make_request(struct request_queue *q, bool has_write, | 1565 | static struct request *_make_request(struct request_queue *q, bool has_write, |
1567 | struct _osd_io_info *oii, gfp_t flags) | 1566 | struct _osd_io_info *oii) |
1568 | { | 1567 | { |
1569 | struct request *req; | 1568 | struct request *req; |
1570 | struct bio *bio = oii->bio; | 1569 | struct bio *bio = oii->bio; |
1571 | int ret; | 1570 | int ret; |
1572 | 1571 | ||
1573 | req = blk_get_request(q, has_write ? REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN, | 1572 | req = blk_get_request(q, has_write ? REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN, |
1574 | flags); | 1573 | GFP_KERNEL); |
1575 | if (IS_ERR(req)) | 1574 | if (IS_ERR(req)) |
1576 | return req; | 1575 | return req; |
1577 | 1576 | ||
@@ -1589,13 +1588,12 @@ static struct request *_make_request(struct request_queue *q, bool has_write, | |||
1589 | static int _init_blk_request(struct osd_request *or, | 1588 | static int _init_blk_request(struct osd_request *or, |
1590 | bool has_in, bool has_out) | 1589 | bool has_in, bool has_out) |
1591 | { | 1590 | { |
1592 | gfp_t flags = or->alloc_flags; | ||
1593 | struct scsi_device *scsi_device = or->osd_dev->scsi_device; | 1591 | struct scsi_device *scsi_device = or->osd_dev->scsi_device; |
1594 | struct request_queue *q = scsi_device->request_queue; | 1592 | struct request_queue *q = scsi_device->request_queue; |
1595 | struct request *req; | 1593 | struct request *req; |
1596 | int ret; | 1594 | int ret; |
1597 | 1595 | ||
1598 | req = _make_request(q, has_out, has_out ? &or->out : &or->in, flags); | 1596 | req = _make_request(q, has_out, has_out ? &or->out : &or->in); |
1599 | if (IS_ERR(req)) { | 1597 | if (IS_ERR(req)) { |
1600 | ret = PTR_ERR(req); | 1598 | ret = PTR_ERR(req); |
1601 | goto out; | 1599 | goto out; |
@@ -1611,7 +1609,7 @@ static int _init_blk_request(struct osd_request *or, | |||
1611 | or->out.req = req; | 1609 | or->out.req = req; |
1612 | if (has_in) { | 1610 | if (has_in) { |
1613 | /* allocate bidi request */ | 1611 | /* allocate bidi request */ |
1614 | req = _make_request(q, false, &or->in, flags); | 1612 | req = _make_request(q, false, &or->in); |
1615 | if (IS_ERR(req)) { | 1613 | if (IS_ERR(req)) { |
1616 | OSD_DEBUG("blk_get_request for bidi failed\n"); | 1614 | OSD_DEBUG("blk_get_request for bidi failed\n"); |
1617 | ret = PTR_ERR(req); | 1615 | ret = PTR_ERR(req); |
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c index 3c6a9c156b7a..ddbf87246898 100644 --- a/fs/exofs/ore.c +++ b/fs/exofs/ore.c | |||
@@ -790,7 +790,7 @@ int ore_create(struct ore_io_state *ios) | |||
790 | for (i = 0; i < ios->oc->numdevs; i++) { | 790 | for (i = 0; i < ios->oc->numdevs; i++) { |
791 | struct osd_request *or; | 791 | struct osd_request *or; |
792 | 792 | ||
793 | or = osd_start_request(_ios_od(ios, i), GFP_KERNEL); | 793 | or = osd_start_request(_ios_od(ios, i)); |
794 | if (unlikely(!or)) { | 794 | if (unlikely(!or)) { |
795 | ORE_ERR("%s: osd_start_request failed\n", __func__); | 795 | ORE_ERR("%s: osd_start_request failed\n", __func__); |
796 | ret = -ENOMEM; | 796 | ret = -ENOMEM; |
@@ -815,7 +815,7 @@ int ore_remove(struct ore_io_state *ios) | |||
815 | for (i = 0; i < ios->oc->numdevs; i++) { | 815 | for (i = 0; i < ios->oc->numdevs; i++) { |
816 | struct osd_request *or; | 816 | struct osd_request *or; |
817 | 817 | ||
818 | or = osd_start_request(_ios_od(ios, i), GFP_KERNEL); | 818 | or = osd_start_request(_ios_od(ios, i)); |
819 | if (unlikely(!or)) { | 819 | if (unlikely(!or)) { |
820 | ORE_ERR("%s: osd_start_request failed\n", __func__); | 820 | ORE_ERR("%s: osd_start_request failed\n", __func__); |
821 | ret = -ENOMEM; | 821 | ret = -ENOMEM; |
@@ -847,7 +847,7 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp) | |||
847 | struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp]; | 847 | struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp]; |
848 | struct osd_request *or; | 848 | struct osd_request *or; |
849 | 849 | ||
850 | or = osd_start_request(_ios_od(ios, dev), GFP_KERNEL); | 850 | or = osd_start_request(_ios_od(ios, dev)); |
851 | if (unlikely(!or)) { | 851 | if (unlikely(!or)) { |
852 | ORE_ERR("%s: osd_start_request failed\n", __func__); | 852 | ORE_ERR("%s: osd_start_request failed\n", __func__); |
853 | ret = -ENOMEM; | 853 | ret = -ENOMEM; |
@@ -966,7 +966,7 @@ int _ore_read_mirror(struct ore_io_state *ios, unsigned cur_comp) | |||
966 | return 0; /* Just an empty slot */ | 966 | return 0; /* Just an empty slot */ |
967 | 967 | ||
968 | first_dev = per_dev->dev + first_dev % ios->layout->mirrors_p1; | 968 | first_dev = per_dev->dev + first_dev % ios->layout->mirrors_p1; |
969 | or = osd_start_request(_ios_od(ios, first_dev), GFP_KERNEL); | 969 | or = osd_start_request(_ios_od(ios, first_dev)); |
970 | if (unlikely(!or)) { | 970 | if (unlikely(!or)) { |
971 | ORE_ERR("%s: osd_start_request failed\n", __func__); | 971 | ORE_ERR("%s: osd_start_request failed\n", __func__); |
972 | return -ENOMEM; | 972 | return -ENOMEM; |
@@ -1060,7 +1060,7 @@ static int _truncate_mirrors(struct ore_io_state *ios, unsigned cur_comp, | |||
1060 | struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp]; | 1060 | struct ore_per_dev_state *per_dev = &ios->per_dev[cur_comp]; |
1061 | struct osd_request *or; | 1061 | struct osd_request *or; |
1062 | 1062 | ||
1063 | or = osd_start_request(_ios_od(ios, cur_comp), GFP_KERNEL); | 1063 | or = osd_start_request(_ios_od(ios, cur_comp)); |
1064 | if (unlikely(!or)) { | 1064 | if (unlikely(!or)) { |
1065 | ORE_ERR("%s: osd_start_request failed\n", __func__); | 1065 | ORE_ERR("%s: osd_start_request failed\n", __func__); |
1066 | return -ENOMEM; | 1066 | return -ENOMEM; |
diff --git a/fs/exofs/super.c b/fs/exofs/super.c index 179cd5c2f52a..719a3152da80 100644 --- a/fs/exofs/super.c +++ b/fs/exofs/super.c | |||
@@ -229,7 +229,7 @@ void exofs_make_credential(u8 cred_a[OSD_CAP_LEN], const struct osd_obj_id *obj) | |||
229 | static int exofs_read_kern(struct osd_dev *od, u8 *cred, struct osd_obj_id *obj, | 229 | static int exofs_read_kern(struct osd_dev *od, u8 *cred, struct osd_obj_id *obj, |
230 | u64 offset, void *p, unsigned length) | 230 | u64 offset, void *p, unsigned length) |
231 | { | 231 | { |
232 | struct osd_request *or = osd_start_request(od, GFP_KERNEL); | 232 | struct osd_request *or = osd_start_request(od); |
233 | /* struct osd_sense_info osi = {.key = 0};*/ | 233 | /* struct osd_sense_info osi = {.key = 0};*/ |
234 | int ret; | 234 | int ret; |
235 | 235 | ||
diff --git a/include/scsi/osd_initiator.h b/include/scsi/osd_initiator.h index a29d3086eb56..86a569d008b2 100644 --- a/include/scsi/osd_initiator.h +++ b/include/scsi/osd_initiator.h | |||
@@ -148,7 +148,6 @@ struct osd_request { | |||
148 | u8 *pad_buff; | 148 | u8 *pad_buff; |
149 | } out, in; | 149 | } out, in; |
150 | 150 | ||
151 | gfp_t alloc_flags; | ||
152 | unsigned timeout; | 151 | unsigned timeout; |
153 | unsigned retries; | 152 | unsigned retries; |
154 | unsigned sense_len; | 153 | unsigned sense_len; |
@@ -202,14 +201,11 @@ static inline bool osd_req_is_ver1(struct osd_request *or) | |||
202 | * | 201 | * |
203 | * @osd_dev: OSD device that holds the scsi-device and default values | 202 | * @osd_dev: OSD device that holds the scsi-device and default values |
204 | * that the request is associated with. | 203 | * that the request is associated with. |
205 | * @gfp: The allocation flags to use for request allocation, and all | ||
206 | * subsequent allocations. This will be stored at | ||
207 | * osd_request->alloc_flags, can be changed by user later | ||
208 | * | 204 | * |
209 | * Allocate osd_request and initialize all members to the | 205 | * Allocate osd_request and initialize all members to the |
210 | * default/initial state. | 206 | * default/initial state. |
211 | */ | 207 | */ |
212 | struct osd_request *osd_start_request(struct osd_dev *od, gfp_t gfp); | 208 | struct osd_request *osd_start_request(struct osd_dev *od); |
213 | 209 | ||
214 | enum osd_req_options { | 210 | enum osd_req_options { |
215 | OSD_REQ_FUA = 0x08, /* Force Unit Access */ | 211 | OSD_REQ_FUA = 0x08, /* Force Unit Access */ |