Hannes Reinecke wrote:
Hi Alasdair,
this is a patch to add a SPC-3 hardware handler. SPC-3 ALUA has
provisioning for 'explicit' port group state change via the
SET TARGET GROUP STATES command, and some newer storage
arrays do benefit from this.
Eg HP EVAs and newer EMC Clariions already support explicit ALUA.
Please apply.
Cheers,
Hannes
Does this also work for adaptec or snap iscsi targets or whatever they
are called targets?
Just some quick higher level comments
+static int submit_std_inquiry(struct alua_handler *h)
+{
+ struct request *rq;
+ unsigned err = (DRIVER_ERROR << 24);
+
+ rq = prepare_req(h, h->inq, TPGS_INQUIRY_SIZE, READ);
I do not think you want to use GFP_KERNEL allocations in this path, so
all the prepare_req allocs should be changed. GFP_NOIO is probably best.
+ if (!rq)
+ return err;
+
+ /* Prepare the command. */
+ rq->cmd[0] = INQUIRY;
+ rq->cmd[1] = 0;
+ rq->cmd[2] = 0;
+ rq->cmd[4] = TPGS_INQUIRY_SIZE;
+ rq->cmd_len = COMMAND_SIZE(INQUIRY);
+
+ blk_execute_rq(rq->q, NULL, rq, 1);
There is only one workqueue for all the dm devices, so you do not want
to do one command (or how many processors there are) at a time and wait
for each one to complete with blk_execute_rq. You should use the async
one, blk_execute_rq_nowait, like rdac.
+ err = rq->errors;
+ blk_put_request(rq);
+
+ return err;
+}
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel