scsi: libfc: Replace ->seq_assign callback with function call
authorHannes Reinecke <hare@suse.de>
Tue, 18 Oct 2016 08:01:53 +0000 (10:01 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Nov 2016 22:29:56 +0000 (17:29 -0500)
The ->seq_assign callback only ever had one implementation,
so call the function directly and drop the callback.

Signed-off-by: Hannes Reinecke <hare@suse.com>
Acked-by: Johannes Thumshirn <jth@kernel.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libfc/fc_exch.c
drivers/target/tcm_fc/tfc_cmd.c
include/scsi/libfc.h

index ceeccd7..efb6a4b 100644 (file)
@@ -1477,7 +1477,7 @@ reject:
  * A reference will be held on the exchange/sequence for the caller, which
  * must call fc_seq_release().
  */
-static struct fc_seq *fc_seq_assign(struct fc_lport *lport, struct fc_frame *fp)
+struct fc_seq *fc_seq_assign(struct fc_lport *lport, struct fc_frame *fp)
 {
        struct fc_exch_mgr_anchor *ema;
 
@@ -1491,6 +1491,7 @@ static struct fc_seq *fc_seq_assign(struct fc_lport *lport, struct fc_frame *fp)
                        break;
        return fr_seq(fp);
 }
+EXPORT_SYMBOL(fc_seq_assign);
 
 /**
  * fc_seq_release() - Release the hold
@@ -2653,9 +2654,6 @@ int fc_exch_init(struct fc_lport *lport)
        if (!lport->tt.exch_mgr_reset)
                lport->tt.exch_mgr_reset = fc_exch_mgr_reset;
 
-       if (!lport->tt.seq_assign)
-               lport->tt.seq_assign = fc_seq_assign;
-
        if (!lport->tt.seq_release)
                lport->tt.seq_release = fc_seq_release;
 
index d6d0664..962eff3 100644 (file)
@@ -461,7 +461,7 @@ static void ft_recv_cmd(struct ft_sess *sess, struct fc_frame *fp)
 
        cmd->se_cmd.map_tag = tag;
        cmd->sess = sess;
-       cmd->seq = lport->tt.seq_assign(lport, fp);
+       cmd->seq = fc_seq_assign(lport, fp);
        if (!cmd->seq) {
                percpu_ida_free(&se_sess->sess_tag_pool, tag);
                goto busy;
index e8669f9..2baa255 100644 (file)
@@ -515,13 +515,6 @@ struct libfc_function_template {
        void (*get_lesb)(struct fc_lport *, struct fc_els_lesb *lesb);
 
        /*
-        * Assign a sequence for an incoming request frame.
-        *
-        * STATUS: OPTIONAL
-        */
-       struct fc_seq *(*seq_assign)(struct fc_lport *, struct fc_frame *);
-
-       /*
         * Release the reference on the sequence returned by seq_assign().
         *
         * STATUS: OPTIONAL
@@ -1006,6 +999,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
 void fc_seq_set_resp(struct fc_seq *sp,
                     void (*resp)(struct fc_seq *, struct fc_frame *, void *),
                     void *arg);
+struct fc_seq *fc_seq_assign(struct fc_lport *lport, struct fc_frame *fp);
 struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *,
                                           struct fc_exch_mgr *,
                                           bool (*match)(struct fc_frame *));