From: Lai Siyao Date: Fri, 16 Jun 2017 14:34:33 +0000 (+0800) Subject: LU-9678 osd-zfs: register arc_prune_func() after site init X-Git-Tag: 2.10.0-RC1~2 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=c1d70a48899a5af92ebb10bacab1d9593930c441;p=fs%2Flustre-release.git LU-9678 osd-zfs: register arc_prune_func() after site init Register arc_prune_func() after site init, otherwise it may be called while object cache is not initialized yet. Signed-off-by: Lai Siyao Change-Id: I822252da906f03899386fb0941cc11c1c3366fbf Reviewed-on: https://review.whamcloud.com/27708 Tested-by: Jenkins Reviewed-by: Fan Yong Reviewed-by: Andreas Dilger Reviewed-by: Alex Zhuravlev Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/osd-zfs/osd_handler.c b/lustre/osd-zfs/osd_handler.c index 47a8e82..bcb8705 100644 --- a/lustre/osd-zfs/osd_handler.c +++ b/lustre/osd-zfs/osd_handler.c @@ -96,6 +96,8 @@ static void arc_prune_func(int64_t bytes, void *private) struct lu_env env; int rc; + LASSERT(site->ls_obj_hash); + rc = lu_env_init(&env, LCT_SHRINKER); if (rc) { CERROR("%s: can't initialize shrinker env: rc = %d\n", @@ -1051,10 +1053,6 @@ static int osd_mount(const struct lu_env *env, o->od_xattr_in_sa = B_TRUE; o->od_max_blksz = osd_spa_maxblocksize(o->od_os->os_spa); - rc = osd_objset_register_callbacks(o); - if (rc) - GOTO(err, rc); - rc = __osd_obj2dnode(o->od_os, o->od_rootid, &rootdn); if (rc) GOTO(err, rc); @@ -1085,6 +1083,10 @@ static int osd_mount(const struct lu_env *env, if (rc) GOTO(err, rc); + rc = osd_objset_register_callbacks(o); + if (rc) + GOTO(err, rc); + rc = osd_procfs_init(o, o->od_svname); if (rc) GOTO(err, rc);