gfs2: Lock imbalance on error path in gfs2_recover_one
[linux-2.6-microblaze.git] / fs / gfs2 / recovery.c
index cff8b9a..2821737 100644 (file)
@@ -512,8 +512,10 @@ void gfs2_recover_func(struct work_struct *work)
                        error = foreach_descriptor(jd, head.lh_tail,
                                                   head.lh_blkno, pass);
                        lops_after_scan(jd, error, pass);
-                       if (error)
+                       if (error) {
+                               up_read(&sdp->sd_log_flush_lock);
                                goto fail_gunlock_thaw;
+                       }
                }
 
                recover_local_statfs(jd, &head);