if llog_process_thread() finds a llog corrupted, then it cancels
all remaining records which in turn causes destroy of this llog.
but it's still referenced by the catalog's in-code structures
(chd_head list) and llog_cat_close() at umount tries to destroy
this llog again. we can reset LLOG_F_ZAP_WHEN_EMPTY at destroy,
so it never repeats.
Change-Id: I8173d9dd2971fa5cce613e71555ca04e96b5512b
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: http://review.whamcloud.com/18362
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
(loghandle->u.phd.phd_cat_handle != NULL &&
loghandle->u.phd.phd_cat_handle->u.chd.chd_current_log !=
loghandle))) {
+ /* never try to destroy it again */
+ llh->llh_flags &= ~LLOG_F_ZAP_WHEN_EMPTY;
rc = llog_trans_destroy(env, loghandle, th);
if (rc < 0) {
/* Sigh, can not destroy the final plain llog, but