[Ocfs2-tools-devel] [PATCH 1/3] fsck.ocfs2: close ost_fs in case of check superblock fails
Joseph Qi
joseph.qi at huawei.com
Tue Sep 27 00:54:29 PDT 2016
open_and_check may happen that check_superblock fails after ocfs2_open.
Currently it goes to out without close ost->ost_fs. So fix it.
Signed-off-by: Joseph Qi <joseph.qi at huawei.com>
---
fsck.ocfs2/fsck.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/fsck.ocfs2/fsck.c b/fsck.ocfs2/fsck.c
index dc5209d..f71fb21 100644
--- a/fsck.ocfs2/fsck.c
+++ b/fsck.ocfs2/fsck.c
@@ -471,6 +471,7 @@ static errcode_t open_and_check(o2fsck_state *ost, char *filename,
if (ret) {
printf("fsck saw unrecoverable errors in the super block and "
"will not continue.\n");
+ ocfs2_close(ost->ost_fs);
goto out;
}
@@ -1097,12 +1098,14 @@ close:
ocfs2_shutdown_dlm(ost->ost_fs, whoami);
block_signals(SIG_UNBLOCK);
- ret = ocfs2_close(ost->ost_fs);
- if (ret) {
- com_err(whoami, ret, "while closing file \"%s\"", filename);
- /* XXX I wonder about this error.. */
- fsck_mask |= FSCK_ERROR;
- }
+ if (ost->ost_fs) {
+ ret = ocfs2_close(ost->ost_fs);
+ if (ret) {
+ com_err(whoami, ret, "while closing file \"%s\"", filename);
+ /* XXX I wonder about this error.. */
+ fsck_mask |= FSCK_ERROR;
+ }
+ }
out:
return fsck_mask;
--
1.8.4.3
More information about the Ocfs2-tools-devel
mailing list