Merge branch 'for-3.6/core' of git://git.kernel.dk/linux-block
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / scsi_transport_iscsi.c
index c737a16b0a1dae1e07557ad9e6a8378f6d137cb7..fa1dfaa83e32986061586c4fcb2f6f8e9e23eaf9 100644 (file)
@@ -907,7 +907,7 @@ static void session_recovery_timedout(struct work_struct *work)
                session->transport->session_recovery_timedout(session);
 
        ISCSI_DBG_TRANS_SESSION(session, "Unblocking SCSI target\n");
-       scsi_target_unblock(&session->dev);
+       scsi_target_unblock(&session->dev, SDEV_TRANSPORT_OFFLINE);
        ISCSI_DBG_TRANS_SESSION(session, "Completed unblocking SCSI target\n");
 }
 
@@ -930,7 +930,7 @@ static void __iscsi_unblock_session(struct work_struct *work)
        session->state = ISCSI_SESSION_LOGGED_IN;
        spin_unlock_irqrestore(&session->lock, flags);
        /* start IO */
-       scsi_target_unblock(&session->dev);
+       scsi_target_unblock(&session->dev, SDEV_RUNNING);
        /*
         * Only do kernel scanning if the driver is properly hooked into
         * the async scanning code (drivers like iscsi_tcp do login and
@@ -1180,7 +1180,7 @@ void iscsi_remove_session(struct iscsi_cls_session *session)
        session->state = ISCSI_SESSION_FREE;
        spin_unlock_irqrestore(&session->lock, flags);
 
-       scsi_target_unblock(&session->dev);
+       scsi_target_unblock(&session->dev, SDEV_TRANSPORT_OFFLINE);
        /* flush running scans then delete devices */
        scsi_flush_work(shost);
        __iscsi_unbind_session(&session->unbind_work);
@@ -2936,7 +2936,10 @@ EXPORT_SYMBOL_GPL(iscsi_unregister_transport);
 static __init int iscsi_transport_init(void)
 {
        int err;
-
+       struct netlink_kernel_cfg cfg = {
+               .groups = 1,
+               .input  = iscsi_if_rx,
+       };
        printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
                ISCSI_TRANSPORT_VERSION);
 
@@ -2966,8 +2969,8 @@ static __init int iscsi_transport_init(void)
        if (err)
                goto unregister_conn_class;
 
-       nls = netlink_kernel_create(&init_net, NETLINK_ISCSI, 1, iscsi_if_rx,
-                                   NULL, THIS_MODULE);
+       nls = netlink_kernel_create(&init_net, NETLINK_ISCSI,
+                                   THIS_MODULE, &cfg);
        if (!nls) {
                err = -ENOBUFS;
                goto unregister_session_class;