When LFSCK build its local objects, such as "lfsck_bookmark", the
stack maybe not fully setup, and the local_storage uses own stack
and we should drop those objects from cache immediately after put.
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I4b122f5a8518499d5986e1abfae912c6fb3cff5f
Reviewed-on: http://review.whamcloud.com/7153
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Tested-by: Oleg Drokin <oleg.drokin@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
{
if (atomic_dec_and_test(&com->lc_ref)) {
if (com->lc_obj != NULL)
{
if (atomic_dec_and_test(&com->lc_ref)) {
if (com->lc_obj != NULL)
- lu_object_put(env, &com->lc_obj->do_lu);
+ lu_object_put_nocache(env, &com->lc_obj->do_lu);
if (com->lc_file_ram != NULL)
OBD_FREE(com->lc_file_ram, com->lc_file_size);
if (com->lc_file_disk != NULL)
if (com->lc_file_ram != NULL)
OBD_FREE(com->lc_file_ram, com->lc_file_size);
if (com->lc_file_disk != NULL)
LASSERT(thread_is_init(thread) || thread_is_stopped(thread));
if (lfsck->li_obj_oit != NULL) {
LASSERT(thread_is_init(thread) || thread_is_stopped(thread));
if (lfsck->li_obj_oit != NULL) {
- lu_object_put(env, &lfsck->li_obj_oit->do_lu);
+ lu_object_put_nocache(env, &lfsck->li_obj_oit->do_lu);
lfsck->li_obj_oit = NULL;
}
lfsck->li_obj_oit = NULL;
}
}
if (lfsck->li_bookmark_obj != NULL) {
}
if (lfsck->li_bookmark_obj != NULL) {
- lu_object_put(env, &lfsck->li_bookmark_obj->do_lu);
+ lu_object_put_nocache(env, &lfsck->li_bookmark_obj->do_lu);
lfsck->li_bookmark_obj = NULL;
}
lfsck->li_bookmark_obj = NULL;
}
}
if (lfsck->li_local_root != NULL) {
}
if (lfsck->li_local_root != NULL) {
- lu_object_put(env, &lfsck->li_local_root->do_lu);
+ lu_object_put_nocache(env, &lfsck->li_local_root->do_lu);
lfsck->li_local_root = NULL;
}
lfsck->li_local_root = NULL;
}