diff options
| author | ngkaho1234 <ngkaho1234@gmail.com> | 2015-12-17 09:44:06 +0000 |
|---|---|---|
| committer | ngkaho1234 <ngkaho1234@gmail.com> | 2015-12-17 09:44:06 +0000 |
| commit | 740927e660015515a8ab6c3e777e76aeffcd140f (patch) | |
| tree | 7625bd5ff1a2f52f3a1cc3beda5cb93069b8e788 | |
| parent | 824e15d0a277d9c6b9e357226dce4ae79d748bbc (diff) | |
ext4_journal: wrap around journal->start if it overflows.
| -rw-r--r-- | lwext4/ext4_journal.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lwext4/ext4_journal.c b/lwext4/ext4_journal.c index 5cd70f4..49e44f3 100644 --- a/lwext4/ext4_journal.c +++ b/lwext4/ext4_journal.c @@ -1160,6 +1160,7 @@ static void jbd_trans_end_write(struct ext4_bcache *bc __unused, if (first_in_queue) { journal->start = trans->start_iblock + trans->alloc_blocks; + wrap(&journal->jbd_fs->sb, journal->start); journal->trans_id = trans->trans_id + 1; } jbd_journal_free_trans(journal, trans, false); @@ -1172,11 +1173,13 @@ static void jbd_trans_end_write(struct ext4_bcache *bc __unused, trans_node); journal->start = trans->start_iblock + trans->alloc_blocks; + wrap(&journal->jbd_fs->sb, journal->start); journal->trans_id = trans->trans_id + 1; jbd_journal_free_trans(journal, trans, false); } else { journal->start = trans->start_iblock; + wrap(&journal->jbd_fs->sb, journal->start); journal->trans_id = trans->trans_id; break; } @@ -1213,6 +1216,7 @@ void jbd_journal_commit_one(struct jbd_journal *journal) if (TAILQ_EMPTY(&journal->cp_queue)) { if (trans->data_cnt) { journal->start = trans->start_iblock; + wrap(&journal->jbd_fs->sb, journal->start); journal->trans_id = trans->trans_id; jbd_journal_write_sb(journal); jbd_write_sb(journal->jbd_fs); @@ -1222,6 +1226,7 @@ void jbd_journal_commit_one(struct jbd_journal *journal) } else { journal->start = trans->start_iblock + trans->alloc_blocks; + wrap(&journal->jbd_fs->sb, journal->start); journal->trans_id = trans->trans_id + 1; jbd_journal_write_sb(journal); jbd_journal_free_trans(journal, trans, false); |
