scsi: libfc: Replace ->seq_release callback with function call
authorHannes Reinecke <hare@suse.de>
Tue, 18 Oct 2016 08:01:54 +0000 (10:01 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Nov 2016 22:29:56 +0000 (17:29 -0500)
The ->seq_release 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 efb6a4b7a62a15340ac239a2c09c1da825f153d8..442a6c1d5efcca8d099a35642bb967cdd9d94312 100644 (file)
@@ -1497,10 +1497,11 @@ EXPORT_SYMBOL(fc_seq_assign);
  * fc_seq_release() - Release the hold
  * @sp:    The sequence.
  */
-static void fc_seq_release(struct fc_seq *sp)
+void fc_seq_release(struct fc_seq *sp)
 {
        fc_exch_release(fc_seq_exch(sp));
 }
+EXPORT_SYMBOL(fc_seq_release);
 
 /**
  * fc_exch_recv_req() - Handler for an incoming request
@@ -2654,9 +2655,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_release)
-               lport->tt.seq_release = fc_seq_release;
-
        return 0;
 }
 EXPORT_SYMBOL(fc_exch_init);
index 962eff3d190d18999819948ece012c638fefcd3a..9af7842b8178e97c66fb8935c0891301b288a78d 100644 (file)
@@ -92,7 +92,7 @@ static void ft_free_cmd(struct ft_cmd *cmd)
        fp = cmd->req_frame;
        lport = fr_dev(fp);
        if (fr_seq(fp))
-               lport->tt.seq_release(fr_seq(fp));
+               fc_seq_release(fr_seq(fp));
        fc_frame_free(fp);
        percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag);
        ft_sess_put(sess);      /* undo get from lookup at recv */
index 2baa2553c97715aba688046735ed35dbd5852fba..6f81b28364da00549c841ec38c936bcdf48195a2 100644 (file)
@@ -514,13 +514,6 @@ struct libfc_function_template {
         */
        void (*get_lesb)(struct fc_lport *, struct fc_els_lesb *lesb);
 
-       /*
-        * Release the reference on the sequence returned by seq_assign().
-        *
-        * STATUS: OPTIONAL
-        */
-       void (*seq_release)(struct fc_seq *);
-
        /*
         * Reset an exchange manager, completing all sequences and exchanges.
         * If s_id is non-zero, reset only exchanges originating from that FID.
@@ -1000,6 +993,7 @@ 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);
+void fc_seq_release(struct fc_seq *sp);
 struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *,
                                           struct fc_exch_mgr *,
                                           bool (*match)(struct fc_frame *));