[lustre-devel] [PATCH v2 10/29] lustre: obd_type: discard obd_type_lock
NeilBrown
neilb at suse.com
Tue May 21 23:53:08 PDT 2019
On Mon, May 20 2019, James Simmons wrote:
> From: NeilBrown <neilb at suse.com>
>
> This lock is only used to protect typ_refcnt, so change
> that to an atomic_t and discard the lock.
>
> The lock also covers calls to try_module_get and module_put,
> but this serves no purpose as it does not prevent the module
> from being unloaded.
>
> Finally, the return value for the call to try_module_get is
> ignored, which is not safe.
>
> Signed-off-by: NeilBrown <neilb at suse.com>
> ---
> fs/lustre/include/obd.h | 3 +--
> fs/lustre/include/obd_class.h | 1 -
> fs/lustre/mdc/mdc_request.c | 2 +-
> fs/lustre/mgc/mgc_request.c | 7 -------
> fs/lustre/obdclass/genops.c | 29 ++++++++++++++---------------
> fs/lustre/obdclass/lu_object.c | 2 +-
> fs/lustre/obdclass/obd_config.c | 19 -------------------
> 7 files changed, 17 insertions(+), 46 deletions(-)
>
> diff --git a/fs/lustre/include/obd.h b/fs/lustre/include/obd.h
> index 4c58b91..61fb815 100644
> --- a/fs/lustre/include/obd.h
> +++ b/fs/lustre/include/obd.h
> @@ -102,9 +102,8 @@ struct obd_type {
> struct obd_ops *typ_dt_ops;
> struct md_ops *typ_md_ops;
> struct dentry *typ_debugfs_entry;
> - int typ_refcnt;
> + atomic_t typ_refcnt;
> struct lu_device_type *typ_lu;
> - spinlock_t obd_type_lock;
> struct kobject typ_kobj;
> };
> #define typ_name typ_kobj.name
> diff --git a/fs/lustre/include/obd_class.h b/fs/lustre/include/obd_class.h
> index 742cb9a4..a853ed5 100644
> --- a/fs/lustre/include/obd_class.h
> +++ b/fs/lustre/include/obd_class.h
> @@ -210,7 +210,6 @@ struct lustre_profile {
> struct lustre_profile *class_get_profile(const char *prof);
> void class_del_profile(const char *prof);
> void class_put_profile(struct lustre_profile *lprof);
> -void class_del_profiles(void);
>
> #if LUSTRE_TRACKS_LOCK_EXP_REFS
>
> diff --git a/fs/lustre/mdc/mdc_request.c b/fs/lustre/mdc/mdc_request.c
> index bc764f9..705a4e3 100644
> --- a/fs/lustre/mdc/mdc_request.c
> +++ b/fs/lustre/mdc/mdc_request.c
> @@ -2542,7 +2542,7 @@ static int mdc_init_ea_size(struct obd_export *exp, u32 easize, u32 def_easize)
> static int mdc_precleanup(struct obd_device *obd)
> {
> /* Failsafe, ok if racy */
> - if (obd->obd_type->typ_refcnt <= 1)
> + if (atomic_read(&obd->obd_type->typ_refcnt) <= 1)
> libcfs_kkuc_group_rem(0, KUC_GRP_HSM);
>
> mdc_changelog_cdev_finish(obd);
> diff --git a/fs/lustre/mgc/mgc_request.c b/fs/lustre/mgc/mgc_request.c
> index 84ba6d0..d8be54d 100644
> --- a/fs/lustre/mgc/mgc_request.c
> +++ b/fs/lustre/mgc/mgc_request.c
> @@ -712,13 +712,6 @@ static int mgc_precleanup(struct obd_device *obd)
>
> static int mgc_cleanup(struct obd_device *obd)
> {
> - /* COMPAT_146 - old config logs may have added profiles we don't
> - * know about
> - */
> - if (obd->obd_type->typ_refcnt <= 1)
> - /* Only for the last mgc */
> - class_del_profiles();
> -
You didn't add any text to the change log describing this change!!!!
Could you please post it as a separate patch - it is only tangentially
related to the changes in this patch.
Thanks,
NeilBrown
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20190522/2283efe8/attachment-0001.sig>
More information about the lustre-devel
mailing list