projects
/
lwext4.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
782631e
)
ext4_journal: fix error handling in jbd_get_fs
author
gkostka
<kostka.grzegorz@gmail.com>
Wed, 19 Apr 2017 14:35:14 +0000
(16:35 +0200)
committer
gkostka
<kostka.grzegorz@gmail.com>
Wed, 19 Apr 2017 14:35:14 +0000
(16:35 +0200)
src/ext4_journal.c
patch
|
blob
|
history
diff --git
a/src/ext4_journal.c
b/src/ext4_journal.c
index aa3322b2a9295c0d26fb82437fa0639c410d9e92..fbdf23308aa5052134be703949b1aa57ead8b781 100644
(file)
--- a/
src/ext4_journal.c
+++ b/
src/ext4_journal.c
@@
-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);
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;
return rc;
- }
+
rc = jbd_sb_read(jbd_fs, &jbd_fs->sb);
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)) {
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;
rc = EIO;
+ goto Error;
}
if (rc == EOK)
jbd_fs->bdev = fs->bdev;
}
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;
}
return rc;
}