diff --git a/[refs] b/[refs] index 4e277a540294..5c4ef8122aba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 78f1ddbb498283c2445c11b0dfa666424c301803 +refs/heads/master: f6f50e28f0cb8d7bcdfaacc83129f005dede11b1 diff --git a/trunk/fs/jbd2/journal.c b/trunk/fs/jbd2/journal.c index e378cb383979..a8a358bc0f21 100644 --- a/trunk/fs/jbd2/journal.c +++ b/trunk/fs/jbd2/journal.c @@ -1187,6 +1187,12 @@ static int journal_reset(journal_t *journal) first = be32_to_cpu(sb->s_first); last = be32_to_cpu(sb->s_maxlen); + if (first + JBD2_MIN_JOURNAL_BLOCKS > last + 1) { + printk(KERN_ERR "JBD: Journal too short (blocks %llu-%llu).\n", + first, last); + journal_fail_superblock(journal); + return -EINVAL; + } journal->j_first = first; journal->j_last = last;