From: Johannes Thumshirn <jthumshirn@suse.de>
To: "Martin K . Petersen" <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@infradead.org>,
Hannes Reinecke <hare@suse.de>,
Linux Kernel Mailinglist <linux-kernel@vger.kernel.org>,
Linux SCSI Mailinglist <linux-scsi@vger.kernel.org>,
Johannes Thumshirn <jthumshirn@suse.de>
Subject: [PATCH v3 00/16] Convert FibreChannel bsg code to use bsg-lib
Date: Thu, 13 Oct 2016 17:00:16 +0200 [thread overview]
Message-ID: <cover.1476369687.git.jthumshirn@suse.de> (raw)
This series converts the current bsg usage in the FibreChannel drivers over
to use bsg-lib. SAS will follow once FC is in a good enough shape.
I did take some inspiration from a similar patchset from Mike Christie
dating back to 2011 but it's not a 1:1 copy. Patch 15/16 is heavily based
on his series and attribution is given to him in the commit message.
It is currently regression tested on FCoE using the 'fcns' and
'fcrls' utilities. I'm still trying to figure out how to test the other
LLDDs. So any pointer from the respective maintainers are appreciated
although the LLDD changes are purely mechanical. All they do is change from
'struct fc_bsg_job' to 'struct bsg_job' and corresponding changes in order
to get the series bisectable.
The idea for this change arose when discussing racy sysfs handling the FC
bsg code with Christoph and is a next step in moving all bsg clients to
bsg-lib to eventually clean up the in kernel bsg API.
Changes to v1:
* Reduce the number of individual patches (44 -> 16)
* Fix s390 build failure (forgotten to kill fc_bsg_job from zfcp_ext.h)
* Fix build failure on configs without CONFIG_BLK_DEV_BSGLIB
* Make bsg_job_get() call kref_get_unless_zero() and use it in scsi_transport_fc.c
Changes to v2:
* Add Hannes' Reviewd-by tags
* Address Hannes' comment about kref handling in 8/16
* Move CONFIG_BLK_DEV_BSGLIB dependency to patch 12/16 as per 0day results
Johannes Thumshirn (16):
scsi: Get rid of struct fc_bsg_buffer
scsi: don't use fc_bsg_job::request and fc_bsg_job::reply directly
scsi: fc: Export fc_bsg_jobdone and use it in FC drivers
scsi: Unify interfaces of fc_bsg_jobdone and bsg_job_done
scsi: fc: provide fc_bsg_to_shost() helper
scsi: fc: provide fc_bsg_to_rport() helper
scsi: libfc: don't set FC_RQST_STATE_DONE before calling
fc_bsg_jobdone()
scsi: fc: implement kref backed reference counting
block: add reference counting for struct bsg_job
scsi: change FC drivers to use 'struct bsg_job'
scsi: fc: Use bsg_destroy_job
scsi: fc: use bsg_softirq_done
scsi: fc: use bsg_job_done
block: add bsg_job_put() and bsg_job_get()
scsi: fc: move FC transport's bsg code to bsg-lib
block: unexport bsg_softirq_done() again
block/bsg-lib.c | 23 +-
drivers/s390/scsi/zfcp_ext.h | 4 +-
drivers/s390/scsi/zfcp_fc.c | 33 +--
drivers/scsi/Kconfig | 1 +
drivers/scsi/bfa/bfad_bsg.c | 62 +++---
drivers/scsi/bfa/bfad_im.h | 4 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 40 ++--
drivers/scsi/libfc/fc_lport.c | 47 ++--
drivers/scsi/lpfc/lpfc_bsg.c | 375 +++++++++++++++++++-------------
drivers/scsi/lpfc/lpfc_crtn.h | 4 +-
drivers/scsi/qla2xxx/qla_bsg.c | 449 ++++++++++++++++++++++-----------------
drivers/scsi/qla2xxx/qla_def.h | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 4 +-
drivers/scsi/qla2xxx/qla_iocb.c | 13 +-
drivers/scsi/qla2xxx/qla_isr.c | 52 +++--
drivers/scsi/qla2xxx/qla_mr.c | 15 +-
drivers/scsi/scsi_transport_fc.c | 409 ++++++-----------------------------
include/linux/bsg-lib.h | 4 +
include/scsi/libfc.h | 2 +-
include/scsi/scsi_transport_fc.h | 62 ++----
20 files changed, 748 insertions(+), 857 deletions(-)
--
1.8.5.6
next reply other threads:[~2016-10-13 15:14 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 15:00 Johannes Thumshirn [this message]
2016-10-13 15:00 ` [PATCH v3 01/16] scsi: Get rid of struct fc_bsg_buffer Johannes Thumshirn
2016-11-03 15:15 ` Christoph Hellwig
2016-10-13 15:00 ` [PATCH v3 02/16] scsi: don't use fc_bsg_job::request and fc_bsg_job::reply directly Johannes Thumshirn
2016-10-13 15:55 ` Steffen Maier
2016-10-13 16:12 ` Johannes Thumshirn
2016-10-14 7:38 ` Johannes Thumshirn
2016-10-25 7:43 ` Johannes Thumshirn
2016-11-15 11:56 ` Johannes Thumshirn
2016-11-15 14:31 ` Steffen Maier
2016-11-15 14:48 ` Johannes Thumshirn
2016-11-15 15:39 ` Johannes Thumshirn
2016-11-16 11:35 ` Johannes Thumshirn
2016-11-03 15:17 ` Christoph Hellwig
2016-11-03 17:42 ` Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 03/16] scsi: fc: Export fc_bsg_jobdone and use it in FC drivers Johannes Thumshirn
2016-11-03 15:17 ` Christoph Hellwig
2016-11-03 22:04 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 04/16] scsi: Unify interfaces of fc_bsg_jobdone and bsg_job_done Johannes Thumshirn
2016-11-03 15:17 ` Christoph Hellwig
2016-11-03 22:06 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 05/16] scsi: fc: provide fc_bsg_to_shost() helper Johannes Thumshirn
2016-11-03 22:07 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 06/16] scsi: fc: provide fc_bsg_to_rport() helper Johannes Thumshirn
2016-11-03 22:08 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 07/16] scsi: libfc: don't set FC_RQST_STATE_DONE before calling fc_bsg_jobdone() Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 08/16] scsi: fc: implement kref backed reference counting Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 09/16] block: add reference counting for struct bsg_job Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 10/16] scsi: change FC drivers to use 'struct bsg_job' Johannes Thumshirn
2016-11-03 22:10 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 11/16] scsi: fc: Use bsg_destroy_job Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 12/16] scsi: fc: use bsg_softirq_done Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 13/16] scsi: fc: use bsg_job_done Johannes Thumshirn
2016-11-03 22:10 ` Tyrel Datwyler
2016-10-13 15:00 ` [PATCH v3 14/16] block: add bsg_job_put() and bsg_job_get() Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 15/16] scsi: fc: move FC transport's bsg code to bsg-lib Johannes Thumshirn
2016-10-13 15:00 ` [PATCH v3 16/16] block: unexport bsg_softirq_done() again Johannes Thumshirn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1476369687.git.jthumshirn@suse.de \
--to=jthumshirn@suse.de \
--cc=hare@suse.de \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).