diff --git a/fs/namei.c b/fs/namei.c
index 47edc998129855e9004d95a3d09eb5118c93a2ea..4c4f95ac8aa5d535c1e919b4bbc9c394010bd88d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1968,11 +1968,11 @@ u64 hashlen_string(const char *name)
 	unsigned long len = 0, c;
 
 	c = (unsigned char)*name;
-	do {
+	while (c) {
 		len++;
 		hash = partial_name_hash(c, hash);
 		c = (unsigned char)name[len];
-	} while (c);
+	}
 	return hashlen_create(end_name_hash(hash), len);
 }
 EXPORT_SYMBOL(hashlen_string);