Remove an unuseful if check in ext4.c.
[lwext4.git] / src / ext4_journal.c
index aa3322b2a9295c0d26fb82437fa0639c410d9e92..a92913a637c2ccc8393f06baf505731faebb9cd0 100644 (file)
@@ -458,25 +458,26 @@ int jbd_get_fs(struct ext4_fs *fs,
        rc = ext4_fs_get_inode_ref(fs,
                                   journal_ino,
                                   &jbd_fs->inode_ref);
-       if (rc != EOK) {
-               memset(jbd_fs, 0, sizeof(struct jbd_fs));
+       if (rc != EOK)
                return rc;
-       }
+
        rc = jbd_sb_read(jbd_fs, &jbd_fs->sb);
-       if (rc != EOK) {
-               memset(jbd_fs, 0, sizeof(struct jbd_fs));
-               ext4_fs_put_inode_ref(&jbd_fs->inode_ref);
-               return rc;
-       }
+       if (rc != EOK)
+               goto Error;
+
        if (!jbd_verify_sb(&jbd_fs->sb)) {
-               memset(jbd_fs, 0, sizeof(struct jbd_fs));
-               ext4_fs_put_inode_ref(&jbd_fs->inode_ref);
                rc = EIO;
+               goto Error;
        }
 
        if (rc == EOK)
                jbd_fs->bdev = fs->bdev;
 
+       return rc;
+Error:
+       ext4_fs_put_inode_ref(&jbd_fs->inode_ref);
+       memset(jbd_fs, 0, sizeof(struct jbd_fs));
+
        return rc;
 }
 
@@ -1330,9 +1331,10 @@ static void jbd_journal_flush_trans(struct jbd_trans *trans)
                      jbd_buf->block_rec->trans == trans)) {
                        int r;
                        struct ext4_block jbd_block = EXT4_BLOCK_ZERO();
-                       ext4_assert(jbd_block_get(journal->jbd_fs,
+                       r = jbd_block_get(journal->jbd_fs,
                                                &jbd_block,
-                                               jbd_buf->jbd_lba) == EOK);
+                                               jbd_buf->jbd_lba);
+                       ext4_assert(r == EOK);
                        memcpy(tmp_data, jbd_block.data,
                                        journal->block_size);
                        ext4_block_set(fs->bdev, &jbd_block);
@@ -1553,12 +1555,15 @@ jbd_trans_finish_callback(struct jbd_journal *journal,
                                jbd_buf_dirty);
                if (jbd_buf) {
                        if (!revoke) {
-                               ext4_assert(ext4_block_get_noread(fs->bdev,
+                               int r;
+                               r = ext4_block_get_noread(fs->bdev,
                                                        &block,
-                                                       block_rec->lba) == EOK);
-                               ext4_assert(jbd_block_get(journal->jbd_fs,
+                                                       block_rec->lba);
+                               ext4_assert(r == EOK);
+                               r = jbd_block_get(journal->jbd_fs,
                                                        &jbd_block,
-                                                       jbd_buf->jbd_lba) == EOK);
+                                                       jbd_buf->jbd_lba);
+                               ext4_assert(r == EOK);
                                memcpy(block.data, jbd_block.data,
                                                journal->block_size);
 
@@ -2140,7 +2145,7 @@ static void jbd_trans_end_write(struct ext4_bcache *bc __unused,
                        TAILQ_REMOVE(&journal->cp_queue, trans, trans_node);
                        jbd_journal_free_trans(journal, trans, false);
 
-                       jbd_journal_purge_cp_trans(journal, false, true);
+                       jbd_journal_purge_cp_trans(journal, false, false);
                        jbd_journal_write_sb(journal);
                        jbd_write_sb(journal->jbd_fs);
                }