diff options
author | George Spelvin <linux@sciencehorizons.net> | 2016-05-29 08:05:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-29 10:33:47 -0400 |
commit | e0ab7af9bd1c25e40b9a1dbeb2a634b88267b9d7 (patch) | |
tree | 0012599b46ccd837c6ce808b808456777f7bb92f /fs/namei.c | |
parent | f2a031b66ec6da1512f9db228e4174ad2c7d2688 (diff) |
hash_string: Fix zero-length case for !DCACHE_WORD_ACCESS
The self-test was updated to cover zero-length strings; the function
needs to be updated, too.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: George Spelvin <linux@sciencehorizons.net>
Fixes: fcfd2fbf22d2 ("fs/namei.c: Add hashlen_string() function")
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/namei.c b/fs/namei.c index 47edc9981298..4c4f95ac8aa5 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1968,11 +1968,11 @@ u64 hashlen_string(const char *name) | |||
1968 | unsigned long len = 0, c; | 1968 | unsigned long len = 0, c; |
1969 | 1969 | ||
1970 | c = (unsigned char)*name; | 1970 | c = (unsigned char)*name; |
1971 | do { | 1971 | while (c) { |
1972 | len++; | 1972 | len++; |
1973 | hash = partial_name_hash(c, hash); | 1973 | hash = partial_name_hash(c, hash); |
1974 | c = (unsigned char)name[len]; | 1974 | c = (unsigned char)name[len]; |
1975 | } while (c); | 1975 | } |
1976 | return hashlen_create(end_name_hash(hash), len); | 1976 | return hashlen_create(end_name_hash(hash), len); |
1977 | } | 1977 | } |
1978 | EXPORT_SYMBOL(hashlen_string); | 1978 | EXPORT_SYMBOL(hashlen_string); |