Whamcloud - gitweb
LU-8066 obd_type: discard obd_types linked list. 18/34718/15
authorNeilBrown <neilb@suse.com>
Wed, 18 Sep 2019 01:17:20 +0000 (21:17 -0400)
committerOleg Drokin <green@whamcloud.com>
Fri, 4 Oct 2019 03:44:05 +0000 (03:44 +0000)
commitc228613e18d4496d026d56040e394fe90273de2f
tree184f102890e8258455fe056f6aef3c858f04173a
parent59842b15b028246d9d20fb9b8d276e16fffc908c
LU-8066 obd_type: discard obd_types linked list.

As all obd_types are kobjects in the lustre_kset kset,
they are linked together in that kset and don't
need any extra linkage.

There are non-obd_type objects in lustre_kset, added by
class_setup_tunables().  These have a different ->ktype, so we are
careful to only return objects with the correct ->ktype.

As kset_find_obj() returns a counted reference, we need
to put that reference when done.

On the server side it is possible to have an obd_type partially
initialized by one subsystem and latter fully initialized by
another subsystem. We use typ_sym_filter to notify us if the
obd_type is only partially setup. If it only paritially setup
then we let the original subsystem that created the obd_type
to clean it up. If the obd_type was latter completely setup
then we let the latter subsystem do the cleanup for us.

Linux-commit: 881bc9b58ef5e8c9be297b121187ea6c26572cf1

Change-Id: I4316644f7fb12e358b799af64deb57836e796066
Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-on: https://review.whamcloud.com/34718
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Petros Koutoupis <pkoutoupis@cray.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/obd.h
lustre/include/obd_class.h
lustre/lod/lod_dev.c
lustre/mdd/mdd_lproc.c
lustre/obdclass/genops.c
lustre/obdclass/obd_mount_server.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_lproc.c
lustre/osd-zfs/osd_lproc.c
lustre/osp/osp_dev.c
lustre/quota/qmt_dev.c