[openib-general] [PATCH] iser: more cleanups following the iscsi_iser/iser merge

Dan Bar Dov bardov at gmail.com
Thu Jan 5 06:47:43 PST 2006


Applied r4770.

Thanks,
Dan

On 1/5/06, Or Gerlitz <ogerlitz at voltaire.com> wrote:
> more cleanups which are possible following the iscsi_iser/iser merge:
> remove unused struct iscsi_buf, make some func call pathes shorter.
>
>
> Index: ulp/iser/iscsi_iser.h
> ===================================================================
> --- ulp/iser/iscsi_iser.h       (revision 4768)
> +++ ulp/iser/iscsi_iser.h       (working copy)
> @@ -25,6 +25,7 @@
>  #include <linux/types.h>
>  #include <linux/net.h>
>  #include <scsi/iscsi_proto.h>
> +#include <scsi/iscsi_if.h>
>  #define AF_ISER         28 /* to be defined properly */
>
>  #define ISCSI_ISER_XMIT_CMDS_MAX       128             /* must be power of 2 */
> @@ -227,19 +228,11 @@ struct iscsi_iser_queue {
>         int                     max;            /* Max number of elements */
>  };
>
> -struct iscsi_buf {
> -       struct scatterlist      sg;
> -       struct kvec             iov;
> -       unsigned int            sent;
> -};
> -
>  struct iscsi_iser_mgmt_task {
>         struct iscsi_hdr        hdr;
>         uint32_t        itt;                    /* this ITT */
>         char            *data;                  /* mgmt payload */
>         int                     data_count;     /* counts data to be sent */
> -       struct iscsi_buf        headbuf;        /* header buffer */
> -       struct iscsi_buf        sendbuf;        /* in progress buffer */
>  };
>
>  struct iscsi_iser_cmd_task {
> @@ -348,14 +341,11 @@ int iser_send_data_out(struct iscsi_iser
>  /* terminate a connection */
>  int iser_conn_term(struct iscsi_iser_conn *p_iscsi_iser_conn);
>
> +int iscsi_iser_hdr_recv(struct iscsi_iser_conn *conn, struct iscsi_hdr *hdr,
> +                       char *rx_data);
>
> -void iscsi_iser_control_notify(struct iscsi_iser_conn *p_iscsi_conn,
> -                              struct iscsi_hdr *hdr, char *rx_data);
> -
> -void iscsi_iser_conn_term_notify(struct iscsi_iser_conn *p_iscsi_conn);
> +void iscsi_iser_conn_failure(struct iscsi_iser_conn *conn, enum iscsi_err err);
>
>  int  iscsi_iser_init(void);
>  void iscsi_iser_exit(void);
>
> -void iser_conn_init_lowpart(struct iscsi_iser_conn *p_iser_conn);
> -
> Index: ulp/iser/iser_conn.c
> ===================================================================
> --- ulp/iser/iser_conn.c        (revision 4768)
> +++ ulp/iser/iser_conn.c        (working copy)
> @@ -85,15 +85,6 @@ void iser_conn_init(struct iser_conn *p_
>         init_waitqueue_head(&p_iser_conn->connect_wait_q);
>  }
>
> -void iser_conn_init_lowpart(struct iscsi_iser_conn *p_iser_conn)
> -{
> -       /* moved from iser_conn_init */
> -       atomic_set(&p_iser_conn->post_recv_buf_count, 0);
> -       atomic_set(&p_iser_conn->post_send_buf_count, 0);
> -
> -       init_waitqueue_head(&p_iser_conn->disconnect_wait_q);
> -}
> -
>  /**
>   * Initializes iSER adaptor structure.
>   *
> @@ -454,7 +445,8 @@ int iser_complete_conn_termination(struc
>
>                 /* Notify the upper layer about asynch terminations */
>                 if (cur_conn_state == ISER_CONN_ASYNC_TERM)
> -                       iscsi_iser_conn_term_notify(p_iser_conn);
> +                       iscsi_iser_conn_failure(p_iser_conn,
> +                                               ISCSI_ERR_CONN_FAILED);
>
>                 if (cur_conn_state == ISER_CONN_SYNC_TERM)
>                         wake_up_interruptible(&p_iser_conn->disconnect_wait_q);
> Index: ulp/iser/iser_initiator.c
> ===================================================================
> --- ulp/iser/iser_initiator.c   (revision 4768)
> +++ ulp/iser/iser_initiator.c   (working copy)
> @@ -537,7 +537,7 @@ void iser_rcv_dto_completion(struct iser
>         struct iscsi_iser_cmd_task *p_iser_task = NULL;
>         struct iscsi_hdr *p_hdr;
>         char   *rx_data;
> -       int     rx_data_size;
> +       int     rx_data_size,rc;
>         unsigned int itt;
>         unsigned char opcode;
>         int no_more_task_sends = 0;
> @@ -581,9 +581,9 @@ void iser_rcv_dto_completion(struct iser
>                 }
>         }
>
> -       iser_dbg("Control notify, DTO:0x%p, as PDU:0x%p\n", p_dto, p_hdr);
> -
> -       iscsi_iser_control_notify(p_iser_conn, p_hdr, rx_data);
> +       rc = iscsi_iser_hdr_recv(p_iser_conn, p_hdr, rx_data);
> +       if(rc)
> +               iscsi_iser_conn_failure(p_iser_conn, rc);
>
>         if(p_iser_task != NULL) {
>                 spin_lock(&p_iser_task->task_lock);
> Index: ulp/iser/iscsi_iser.c
> ===================================================================
> --- ulp/iser/iscsi_iser.c       (revision 4768)
> +++ ulp/iser/iscsi_iser.c       (working copy)
> @@ -79,15 +79,6 @@ module_param_named(max_lun, iscsi_max_lu
>
>  static kmem_cache_t            *task_mem_cache;
>
> -static inline void iscsi_buf_init_iov(struct iscsi_buf *ibuf,
> -                                     char *vbuf, int size)
> -{
> -       ibuf->sg.page = (void*)vbuf;
> -       ibuf->sg.offset = (unsigned int)-1;
> -       ibuf->sg.length = size;
> -       ibuf->sent = 0;
> -}
> -
>  /**
>   * iscsi_iser_cmd_init - Initialize iSCSI SCSI_READ or SCSI_WRITE commands
>   *
> @@ -185,26 +176,18 @@ static int iscsi_iser_mtask_xmit(struct
>  {
>         int error = 0;
>
> -       debug_scsi("mtask deq [cid %d itt 0x%x]\n",
> -                  conn->id, mtask->itt);
> -
> -       debug_scsi("%s: sending: size = 0x%x, data = 0x%p\n",
> -                  __FUNCTION__,
> -                  mtask->data_count,
> -                  mtask->data);
> +       debug_scsi("mtask deq [cid %d itt 0x%x]\n", conn->id, mtask->itt);
>
>         /* Send the control */
> -       /* FIXME enough to call with (conn, mtask) */
>         error = iser_send_control(conn, mtask);
>
> -       if (error) {
> +       if (error)
>                 printk(KERN_ERR "send_control failed\n");
> -       }
>
>         return error;
>  }
>
> -static void
> +void
>  iscsi_iser_conn_failure(struct iscsi_iser_conn *conn, enum iscsi_err err)
>  {
>         struct iscsi_iser_session *session = conn->session;
> @@ -222,36 +205,6 @@ iscsi_iser_conn_failure(struct iscsi_ise
>         debug_iser("%s: exit\n", __FUNCTION__);
>  }
>
> -static int iscsi_iser_ctask_xmit_cmd(struct iscsi_iser_conn *conn,
> -                                    struct iscsi_iser_cmd_task *ctask)
> -{
> -       int error = 0;
> -       switch (ctask->sc->sc_data_direction) {
> -       case DMA_TO_DEVICE:
> -       case DMA_FROM_DEVICE:
> -               break;
> -       case DMA_NONE:
> -               break;
> -       default:
> -               printk(KERN_ERR "Illegal data direction (%d)\n",
> -                      ctask->sc->sc_data_direction);
> -               error = -1;
> -               goto iscsi_iser_ctask_xmit_cmd_exit;
> -
> -       }
> -
> -       /* Send the command */
> -       error = iser_send_command(conn, ctask);
> -
> -       if (error) {
> -               printk(KERN_ERR "send_command failed\n");
> -               iscsi_iser_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
> -       }
> -
> -iscsi_iser_ctask_xmit_cmd_exit:
> -       return error;
> -}
> -
>  static void iscsi_iser_unsolicit_data_init(struct iscsi_iser_conn *conn,
>                                            struct iscsi_iser_cmd_task *ctask)
>  {
> @@ -313,7 +266,6 @@ static int iscsi_iser_ctask_xmit_unsol_d
>                 error = iser_send_data_out(conn, ctask, &dtask->hdr);
>                 if (error) {
>                         printk(KERN_ERR "send_data_out failed\n");
> -                       iscsi_iser_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
>                         goto iscsi_iser_ctask_xmit_unsol_data_exit;
>                 }
>
> @@ -341,7 +293,7 @@ static int iscsi_iser_ctask_xmit(struct
>                 return error;
>
>         /* Send the cmd PDU */
> -       error = iscsi_iser_ctask_xmit_cmd(conn,ctask);
> +       error = iser_send_command(conn, ctask);
>         if (error) {
>                 printk(KERN_ERR "Couldn't send a cmd PDU\n");
>                 goto iscsi_iser_ctask_xmit_exit;
> @@ -349,14 +301,15 @@ static int iscsi_iser_ctask_xmit(struct
>
>         /* Send unsolicited data-out PDU(s) if necessary */
>         if (ctask->unsol_count) {
> -               error = iscsi_iser_ctask_xmit_unsol_data(conn,ctask);
> -               if (error) {
> +               error = iscsi_iser_ctask_xmit_unsol_data(conn, ctask);
> +               if (error)
>                         printk(KERN_ERR "Couldn't send unsolicited "
>                                "data-out PDU(s)\n");
> -               }
>         }
>
>   iscsi_iser_ctask_xmit_exit:
> +       if(error)
> +               iscsi_iser_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
>         return error;
>  }
>
> @@ -563,19 +516,6 @@ fault:
>         return 0;
>  }
>
> -static inline void iscsi_buf_init_virt(struct iscsi_buf *ibuf,
> -                                      char *vbuf, int size)
> -{
> -       sg_init_one(&ibuf->sg, (u8 *)vbuf, size);
> -       ibuf->sent = 0;
> -}
> -
> -static inline void iscsi_buf_init_hdr(struct iscsi_iser_conn *conn,
> -                                     struct iscsi_buf *ibuf, char *vbuf)
> -{
> -       iscsi_buf_init_virt(ibuf, vbuf, sizeof(struct iscsi_hdr));
> -}
> -
>  static int iscsi_iser_conn_send_generic(iscsi_connh_t connh,
>                                          struct iscsi_hdr *hdr,
>                                          char *data, uint32_t data_size)
> @@ -627,8 +567,6 @@ static int iscsi_iser_conn_send_generic(
>
>         memcpy(&mtask->hdr, hdr, sizeof(struct iscsi_hdr));
>
> -       iscsi_buf_init_hdr(conn, &mtask->headbuf, (char*)&mtask->hdr);
> -
>         spin_unlock_bh(&session->lock);
>
>         if (data_size) {
> @@ -637,11 +575,6 @@ static int iscsi_iser_conn_send_generic(
>         } else
>                 mtask->data_count = 0;
>
> -       if (mtask->data_count) {
> -               iscsi_buf_init_iov(&mtask->sendbuf, (char*)mtask->data,
> -                                  mtask->data_count);
> -       }
> -
>         debug_scsi("mgmtpdu [op 0x%x hdr->itt 0x%x datalen %d]\n",
>                    hdr->opcode, hdr->itt, data_size);
>
> @@ -1219,8 +1152,9 @@ static iscsi_connh_t iscsi_iser_conn_cre
>         init_MUTEX(&conn->xmitsema);
>         init_waitqueue_head(&conn->ehwait);
>
> -       /* MERGE_ADDED */
> -       iser_conn_init_lowpart(conn);
> +       atomic_set(&conn->post_recv_buf_count, 0);
> +       atomic_set(&conn->post_send_buf_count, 0);
> +       init_waitqueue_head(&conn->disconnect_wait_q);
>
>         return iscsi_handle(conn);
>
> @@ -1761,7 +1695,7 @@ out:
>         return rc;
>  }
>
> -static int
> +int
>  iscsi_iser_hdr_recv(struct iscsi_iser_conn *conn, struct iscsi_hdr *hdr, char *rx_data)
>  {
>         int rc = 0;
> @@ -1937,31 +1871,6 @@ iscsi_iser_hdr_recv(struct iscsi_iser_co
>         return rc;
>  }
>
> -void iscsi_iser_control_notify(struct iscsi_iser_conn *conn,/*void *conn_h,*/
> -                              struct iscsi_hdr *hdr, char *rx_data)
> -{
> -       int rc;
> -
> -       /*
> -        * Verify and process incoming PDU header.
> -        */
> -       rc = iscsi_iser_hdr_recv(conn, hdr, rx_data);
> -       if (rc) {
> -               debug_iser("%s: calling iscsi_iser_conn_failure\n", __FUNCTION__);
> -               iscsi_iser_conn_failure(conn, rc);
> -       }
> -}
> -
> -void iscsi_iser_conn_term_notify(struct iscsi_iser_conn *conn)
> -{
> -       debug_iser("%s: entry\n", __FUNCTION__);
> -
> -       debug_iser("%s: calling iscsi_iser_conn_failure\n", __FUNCTION__);
> -       iscsi_iser_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
> -
> -       debug_iser("%s: exit\n", __FUNCTION__);
> -}
> -
>  int iscsi_iser_init(void)
>  {
>         int error;
>
>
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>



More information about the general mailing list