diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c
index 1d668c8f131ff68111b3780285da45faa924e209..6476994d9861debd1504a55fcd46f5f86cd4f3d9 100644
--- a/fs/ext4/fsync.c
+++ b/fs/ext4/fsync.c
@@ -150,7 +150,7 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
 
 	ret = file_write_and_wait_range(file, start, end);
 	if (ret)
-		return ret;
+		goto out;
 
 	/*
 	 * data=writeback,ordered:
diff --git a/fs/ext4/indirect.c b/fs/ext4/indirect.c
index a56ce3873e6d4fae2e3ed9fb9ea51ebbaf46f892..23e504a40cd70763f5aa75b4243787b4e4e2cfb9 100644
--- a/fs/ext4/indirect.c
+++ b/fs/ext4/indirect.c
@@ -593,7 +593,8 @@ int ext4_ind_map_blocks(handle_t *handle, struct inode *inode,
 	if (ext4_has_feature_bigalloc(inode->i_sb)) {
 		EXT4_ERROR_INODE(inode, "Can't allocate blocks for "
 				 "non-extent mapped inodes with bigalloc");
-		return -EFSCORRUPTED;
+		err = -EFSCORRUPTED;
+		goto out;
 	}
 
 	/* Set up for the direct block allocation */