Whamcloud - gitweb
LU-5003 llog: do not fix remote llogs 55/11955/3
authorAlexander Zarochentsev <alexander.zarochentsev@seagate.com>
Tue, 16 Sep 2014 15:41:46 +0000 (19:41 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 5 Oct 2014 23:45:01 +0000 (23:45 +0000)
prevent llog_process_thread() from trying to fix
remote llog by a direct write to the header.

Xyratex-bug-id: MRP-2076
Change-Id: I4f8b758a38ce3f51c24fa7397ad5c4b341e27ed0
Signed-off-by: Alexander Zarochentsev <alexander.zarochentsev@seagate.com>
Reviewed-on: http://review.whamcloud.com/11955
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/obdclass/llog.c

index 78ba445..932b384 100644 (file)
@@ -396,12 +396,12 @@ out:
         if (cd != NULL)
                 cd->lpcd_last_idx = last_called_index;
 
-       if (unlikely(rc == -EIO)) {
-               /* something bad happened to the processing, probably I/O
-                * error or the log got corrupted..
+       if (unlikely(rc == -EIO && loghandle->lgh_obj != NULL)) {
+               /* something bad happened to the processing of a local
+                * llog file, probably I/O error or the log got corrupted..
                 * to be able to finally release the log we discard any
                 * remaining bits in the header */
-               CERROR("llog found corrupted\n");
+               CERROR("Local llog found corrupted\n");
                while (index <= last_index) {
                        if (ext2_test_bit(index, llh->llh_bitmap) != 0)
                                llog_cancel_rec(lpi->lpi_env, loghandle, index);