diff --git a/iscsi-scst/kernel/isert-scst/iser.h b/iscsi-scst/kernel/isert-scst/iser.h index 7b8c0536d..143d863c4 100644 --- a/iscsi-scst/kernel/isert-scst/iser.h +++ b/iscsi-scst/kernel/isert-scst/iser.h @@ -234,6 +234,7 @@ struct isert_device { struct ib_device *ib_dev; struct ib_pd *pd; struct ib_mr *mr; + u32 lkey; struct list_head devs_node; /* conn_list and refcnt protected by dev_list_mutex */ diff --git a/iscsi-scst/kernel/isert-scst/iser_pdu.c b/iscsi-scst/kernel/isert-scst/iser_pdu.c index 25ee75ddd..7a0810185 100644 --- a/iscsi-scst/kernel/isert-scst/iser_pdu.c +++ b/iscsi-scst/kernel/isert-scst/iser_pdu.c @@ -201,7 +201,7 @@ static int isert_alloc_for_rdma(struct isert_cmnd *pdu, int sge_cnt, isert_wr_set_fields(&pdu->wr[i], isert_conn, pdu); for (i = 0; i < sge_cnt; ++i) - pdu->sg_pool[i].lkey = isert_conn->isert_dev->mr->lkey; + pdu->sg_pool[i].lkey = isert_conn->isert_dev->lkey; goto out; diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index 7699abc74..8c6424acf 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -1092,6 +1092,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) isert_dev->ib_dev = ib_dev; isert_dev->pd = pd; isert_dev->mr = mr; + isert_dev->lkey = mr->lkey; INIT_LIST_HEAD(&isert_dev->conn_list);