diff options
Diffstat (limited to 'fs/gfs2/recovery.c')
-rw-r--r-- | fs/gfs2/recovery.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index b56ba3db7771..efd09c3d2b26 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c | |||
@@ -585,6 +585,28 @@ fail: | |||
585 | return error; | 585 | return error; |
586 | } | 586 | } |
587 | 587 | ||
588 | static struct gfs2_jdesc *gfs2_jdesc_find_dirty(struct gfs2_sbd *sdp) | ||
589 | { | ||
590 | struct gfs2_jdesc *jd; | ||
591 | int found = 0; | ||
592 | |||
593 | spin_lock(&sdp->sd_jindex_spin); | ||
594 | |||
595 | list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) { | ||
596 | if (jd->jd_dirty) { | ||
597 | jd->jd_dirty = 0; | ||
598 | found = 1; | ||
599 | break; | ||
600 | } | ||
601 | } | ||
602 | spin_unlock(&sdp->sd_jindex_spin); | ||
603 | |||
604 | if (!found) | ||
605 | jd = NULL; | ||
606 | |||
607 | return jd; | ||
608 | } | ||
609 | |||
588 | /** | 610 | /** |
589 | * gfs2_check_journals - Recover any dirty journals | 611 | * gfs2_check_journals - Recover any dirty journals |
590 | * @sdp: the filesystem | 612 | * @sdp: the filesystem |