diff --git a/e2fsck/quota.c b/e2fsck/quota.c
index 3d48284..f9b68c9 100644
--- a/e2fsck/quota.c
+++ b/e2fsck/quota.c
@@ -16,22 +16,26 @@
 #include "e2fsck.h"
 #include "problem.h"
 
-static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino,
-			     ext2_ino_t to_ino, enum quota_type qtype)
+static errcode_t move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino,
+				  ext2_ino_t to_ino, enum quota_type qtype)
 {
 	struct ext2_inode	inode;
 	errcode_t		retval;
 	char			qf_name[QUOTA_NAME_LEN];
 
 	/* We need the inode bitmap to be loaded */
-	if (ext2fs_read_bitmaps(fs))
-		return;
+	retval = ext2fs_read_bitmaps(fs);
+	if (retval) {
+		com_err("ext2fs_read_bitmaps", retval, "%s",
+			_("in move_quota_inode"));
+		return retval;
+	}
 
 	retval = ext2fs_read_inode(fs, from_ino, &inode);
 	if (retval) {
 		com_err("ext2fs_read_inode", retval, "%s",
 			_("in move_quota_inode"));
-		return;
+		return retval;
 	}
 
 	inode.i_links_count = 1;
@@ -44,16 +48,22 @@
 	if (retval) {
 		com_err("ext2fs_write_new_inode", retval, "%s",
 			_("in move_quota_inode"));
-		return;
+		return retval;
 	}
 
 	/* unlink the old inode */
 	quota_get_qf_name(qtype, QFMT_VFS_V1, qf_name);
-	ext2fs_unlink(fs, EXT2_ROOT_INO, qf_name, from_ino, 0);
+	retval = ext2fs_unlink(fs, EXT2_ROOT_INO, qf_name, from_ino, 0);
+	if (retval) {
+		com_err("ext2fs_unlink", retval, "%s",
+			_("in move_quota_inode"));
+		return retval;
+	}
 	ext2fs_inode_alloc_stats(fs, from_ino, -1);
 	/* Clear out the original inode in the inode-table block. */
 	memset(&inode, 0, sizeof(struct ext2_inode));
 	ext2fs_write_inode(fs, from_ino, &inode);
+	return 0;
 }
 
 void e2fsck_hide_quota(e2fsck_t ctx)
@@ -77,7 +87,8 @@
 		quota_ino = quota_type2inum(qtype, fs->super);
 		if (pctx.ino && (pctx.ino != quota_ino) &&
 		    fix_problem(ctx, PR_0_HIDE_QUOTA, &pctx)) {
-			move_quota_inode(fs, pctx.ino, quota_ino, qtype);
+			if (move_quota_inode(fs, pctx.ino, quota_ino, qtype))
+				continue;
 			*quota_sb_inump(sb, qtype) = quota_ino;
 			ext2fs_mark_super_dirty(fs);
 		}
