When lu_cache_shrink() is called on a machine with no Lustre targets
mounted, the following null pointer dereference may happen:
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<
ffffffffa0aed076>] lu_cache_shrink+0x156/0x310 [obdclass]
This is a regression introduced recently by 8701e7e. lu_sites must be
initialized before the lu_sites shrinker is registered. And, it
cannot be re-initialized every time when an lu_site is initialized.
Change-Id: Ieebd2ff1bcde4096037658a22956355283122182
Signed-off-by: Li Wei <wei.g.li@intel.com>
Reviewed-on: http://review.whamcloud.com/11244
Tested-by: Jenkins
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Emoly Liu <emoly.liu@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
int i;
ENTRY;
- INIT_LIST_HEAD(&lu_sites);
-
memset(s, 0, sizeof *s);
mutex_init(&s->ls_purge_mutex);
bits = lu_htable_order(top);
INIT_LIST_HEAD(&lu_device_types);
INIT_LIST_HEAD(&lu_context_remembered);
+ INIT_LIST_HEAD(&lu_sites);
result = lu_ref_global_init();
if (result != 0)