[SCSI] iscsi_transport: add support for net settings
Allows user space (iscsiadm) to send down network configuration parameters for LLD to set private network configuration on the iSCSI adapters. Based on patch from Lalit Chandivade. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
此提交包含在:
@@ -1557,6 +1557,30 @@ iscsi_set_path(struct iscsi_transport *transport, struct iscsi_uevent *ev)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int
|
||||
iscsi_set_iface_params(struct iscsi_transport *transport,
|
||||
struct iscsi_uevent *ev)
|
||||
{
|
||||
char *data = (char *)ev + sizeof(*ev);
|
||||
struct Scsi_Host *shost;
|
||||
int err;
|
||||
|
||||
if (!transport->set_iface_param)
|
||||
return -ENOSYS;
|
||||
|
||||
shost = scsi_host_lookup(ev->u.set_iface_params.host_no);
|
||||
if (!shost) {
|
||||
printk(KERN_ERR "set_iface_params could not find host no %u\n",
|
||||
ev->u.set_iface_params.host_no);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
err = transport->set_iface_param(shost, data,
|
||||
ev->u.set_iface_params.count);
|
||||
scsi_host_put(shost);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int
|
||||
iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
|
||||
{
|
||||
@@ -1696,6 +1720,9 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
|
||||
case ISCSI_UEVENT_PATH_UPDATE:
|
||||
err = iscsi_set_path(transport, ev);
|
||||
break;
|
||||
case ISCSI_UEVENT_SET_IFACE_PARAMS:
|
||||
err = iscsi_set_iface_params(transport, ev);
|
||||
break;
|
||||
default:
|
||||
err = -ENOSYS;
|
||||
break;
|
||||
|
新增問題並參考
封鎖使用者