|
@@ -345,13 +345,18 @@ int ocfs2_load_local_alloc(struct ocfs2_super *osb)
|
|
|
if (num_used
|
|
if (num_used
|
|
|
|| alloc->id1.bitmap1.i_used
|
|
|| alloc->id1.bitmap1.i_used
|
|
|
|| alloc->id1.bitmap1.i_total
|
|
|| alloc->id1.bitmap1.i_total
|
|
|
- || la->la_bm_off)
|
|
|
|
|
- mlog(ML_ERROR, "Local alloc hasn't been recovered!\n"
|
|
|
|
|
|
|
+ || la->la_bm_off) {
|
|
|
|
|
+ mlog(ML_ERROR, "inconsistent detected, clean journal with"
|
|
|
|
|
+ " unrecovered local alloc, please run fsck.ocfs2!\n"
|
|
|
"found = %u, set = %u, taken = %u, off = %u\n",
|
|
"found = %u, set = %u, taken = %u, off = %u\n",
|
|
|
num_used, le32_to_cpu(alloc->id1.bitmap1.i_used),
|
|
num_used, le32_to_cpu(alloc->id1.bitmap1.i_used),
|
|
|
le32_to_cpu(alloc->id1.bitmap1.i_total),
|
|
le32_to_cpu(alloc->id1.bitmap1.i_total),
|
|
|
OCFS2_LOCAL_ALLOC(alloc)->la_bm_off);
|
|
OCFS2_LOCAL_ALLOC(alloc)->la_bm_off);
|
|
|
|
|
|
|
|
|
|
+ status = -EINVAL;
|
|
|
|
|
+ goto bail;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
osb->local_alloc_bh = alloc_bh;
|
|
osb->local_alloc_bh = alloc_bh;
|
|
|
osb->local_alloc_state = OCFS2_LA_ENABLED;
|
|
osb->local_alloc_state = OCFS2_LA_ENABLED;
|
|
|
|
|
|