]> git.karo-electronics.de Git - linux-beck.git/blobdiff - fs/jbd/journal.c
jbd: Fail to load a journal if it is too short
[linux-beck.git] / fs / jbd / journal.c
index 737f7246a4b5ddc750b4a5198928f4b5afacc193..94a64a199a63a5b6ab389450d701a43e325582bf 100644 (file)
@@ -848,6 +848,12 @@ static int journal_reset(journal_t *journal)
 
        first = be32_to_cpu(sb->s_first);
        last = be32_to_cpu(sb->s_maxlen);
+       if (first + JFS_MIN_JOURNAL_BLOCKS > last + 1) {
+               printk(KERN_ERR "JBD: Journal too short (blocks %lu-%lu).\n",
+                      first, last);
+               journal_fail_superblock(journal);
+               return -EINVAL;
+       }
 
        journal->j_first = first;
        journal->j_last = last;