diff --git a/fs/inode.c b/fs/inode.c
index 0401d2c6d0879a51fe833f63e971a53e08e55d05..648e71ce6ec216358e6733c2d6e0141c3d90c6f6 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -840,7 +840,11 @@ unsigned int get_next_ino(void)
 	}
 #endif
 
-	*p = ++res;
+	res++;
+	/* get_next_ino should not provide a 0 inode number */
+	if (unlikely(!res))
+		res++;
+	*p = res;
 	put_cpu_var(last_ino);
 	return res;
 }