Spdk/lib/bdev
Jim Harris 671b77e5cd bdev: remove vbdevs and base_bdevs arrays
The intents of these arrays was to keep track in the
bdev layer of all base<->virtual bdev relationships -
i.e. which member disk bdevs make up a RAID bdev,
which logical volume bdevs are associated with a
bdev that contains an lvolstore, etc.

Currently none of this is used however.  And trying
to keep track in the bdev layer instead of asking
the bdev modules for the relationships has a number
of complications.  Early one, we tried to do this
with TAILQs - but that doesn't work since this can't
be done with a single TAILQ_ENTRY in the bdev
structures.  So we moved to arrays - that works a bit
better, but then the pointer arrays have to be
realloc'd which isn't ideal.

The biggest problem though with these arrays is that
they held bdev pointers - not bdev descriptor pointers.
It's not really valid to access bdevs without a
descriptor - the descriptors are what make sure active
references are accounted for when a bdev is hotplugged.
Of course the bdev layer knows when a bdev is getting
removed and could go and do the updates to these
arrays separately - but that just seems very convoluted.

So for now just remove these arrays completely.  If
there is a future need for the bdev layer to
understand relationships between bdevs, we can add
module APIs so that the generic layer can ask
the modules about the relationships.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I99ef1068240bff1262f64f234260cf2fb44df51d
Reviewed-on: https://review.gerrithub.io/420932
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
2018-08-17 00:11:03 +00:00
..
aio bdev/aio: Add the epoll support 2018-08-14 04:10:36 +00:00
error bdev: split examine into two parts 2018-07-06 21:12:53 +00:00
gpt bdev/gpt: fail more gracefully on extended block size bdevs 2018-08-16 04:38:36 +00:00
iscsi bdev/iscsi: unregister io_device on bdev destruction 2018-07-27 18:58:53 +00:00
lvol bdev/lvol: vbdev_lvol_destroy(): no need to del alias 2018-08-15 01:37:45 +00:00
malloc bdev/malloc: remove blocklen power of 2 restriction 2018-08-15 17:36:00 +00:00
null bdev/null: free global resources on module finish 2018-07-30 15:38:07 +00:00
nvme nvme: add spdk_nvme_ns_get_extended_sector_size 2018-08-16 04:38:10 +00:00
passthru bdev: split examine into two parts 2018-07-06 21:12:53 +00:00
pmem bdev: add delete_pmem_bdev call 2018-07-02 22:53:18 +00:00
raid bdev: cleanup registered bdevs in reverse order 2018-08-17 00:11:03 +00:00
rbd bdev/rbd: change the poller to timer poller 2018-07-03 16:40:18 +00:00
rpc bdev: add tracking for time spent processing I/O. 2018-07-31 23:26:07 +00:00
split bdev/split: use bdev_part interface to get split names 2018-08-17 00:11:03 +00:00
virtio bdev/virtio_blk: defer bdev destruct completion 2018-07-31 01:13:07 +00:00
bdev.c bdev: remove vbdevs and base_bdevs arrays 2018-08-17 00:11:03 +00:00
Makefile bdev: add raid bdev module 2018-07-16 20:50:40 +00:00
part.c bdev: remove public usage of bdev_part_base.ref 2018-07-05 19:12:53 +00:00
scsi_nvme.c bdev: move error union to internal spdk_bdev_io struct 2018-06-26 20:04:07 +00:00
vtune.c bdev: disable new GCC 7 warning in VTune code 2018-03-19 15:58:15 -04:00