--- mount/lomount.c
+++ mount/lomount.c
@@ -109,7 +109,14 @@ static int
 is_loop_used(int fd)
 {
 	struct loop_info li;
-	return ioctl (fd, LOOP_GET_STATUS, &li) == 0;
+	int ret;
+	ret = ioctl (fd, LOOP_GET_STATUS, &li);
+	if (ret == 0)
+	    return 1;
+	if (ret < 0 && (errno == ENXIO))
+	    return 0;
+	/* all other errors, e.g. ENOENT or ESTALE are an error. */
+	return -1;
 }
 
 int