staging: lustre: obdclass: don't require lct_owner to be non-NULL.
Some places in lu_object.c allow lct_owner to be NULL, implying that the code is built in to the kernel (not a module), but two places don't. This prevents us from building lustre into the kernel. So remove the requirement and always allow lct_owner to be NULL. This requires removing an "assert" that the module count is positive, but this is redundant as module_put() already does the necessary test. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f689c72d7d
commit
3ab19e61b3
|
@ -1380,12 +1380,8 @@ static void key_fini(struct lu_context *ctx, int index)
|
|||
lu_ref_del(&key->lct_reference, "ctx", ctx);
|
||||
atomic_dec(&key->lct_used);
|
||||
|
||||
if ((ctx->lc_tags & LCT_NOREF) == 0) {
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
LINVRNT(module_refcount(key->lct_owner) > 0);
|
||||
#endif
|
||||
if ((ctx->lc_tags & LCT_NOREF) == 0)
|
||||
module_put(key->lct_owner);
|
||||
}
|
||||
ctx->lc_value[index] = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -1619,7 +1615,6 @@ static int keys_fill(struct lu_context *ctx)
|
|||
LINVRNT(key->lct_init);
|
||||
LINVRNT(key->lct_index == i);
|
||||
|
||||
LASSERT(key->lct_owner);
|
||||
if (!(ctx->lc_tags & LCT_NOREF) &&
|
||||
!try_module_get(key->lct_owner)) {
|
||||
/* module is unloading, skip this key */
|
||||
|
|
Loading…
Reference in New Issue