Whamcloud - gitweb
LU-17305 obdclass: do not link all exports to obd's timed list 92/53192/15
authorVladimir Saveliev <vladimir.saveliev@hpe.com>
Tue, 27 Aug 2024 08:17:30 +0000 (11:17 +0300)
committerOleg Drokin <green@whamcloud.com>
Mon, 31 Mar 2025 05:58:45 +0000 (05:58 +0000)
commitc8777fda0edbd1ae5e8f32a1c4413e333ad3b3fa
tree1aaa7afc63f93c2fc6e4d15b0fe5925e59ffd205
parent7fe677f249bfa4632e88f1c19bfba9e61ba88e17
LU-17305 obdclass: do not link all exports to obd's timed list

Osp device may get class_cleanup()-ed in course of evictor process
where obd->u.cli.cl_import gets zeroed:
ping_evictor_main
  class_fail_export
    obd_disconnect
      osp_obd_disconnect
        class_manual_cleanup
          class_process_config(LCFG_CLEANUP)
            class_cleanup
              obd_precleanup
                osp_device_fini
                  client_obd_cleanup
                    obd_cleanup_client_import
                      obd->u.cli.cl_import = NULL;

osp-pre threads are not stopped by the evictor, which leads to
assertion on:
osp_precreate_thread
  osp_statfs_update
    imp = d->opd_obd->u.cli.cl_import;
    LASSERT(imp);

Test to illustrate the issue is added.

Add to obd's timed list only evictable exports

HPE-bug-id: LUS-11933
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@hpe.com>
Change-Id: I1aab4a573fc4ef33d53d822bec1a28dd3bcece74
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53192
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Vitaly Fertman <vitaly.fertman@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/lustre_export.h
lustre/include/obd_support.h
lustre/ldlm/ldlm_lib.c
lustre/mdt/mdt_handler.c
lustre/obdclass/genops.c
lustre/obdclass/obd_config.c
lustre/obdecho/echo_client.c
lustre/ofd/ofd_obd.c
lustre/ptlrpc/pinger.c
lustre/target/tgt_lastrcvd.c
lustre/tests/recovery-small.sh