aboutsummaryrefslogtreecommitdiffstats
path: root/fs/namei.c
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2012-03-22 17:59:52 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-22 18:10:43 -0400
commitf132c5be05e407a99cf582347a2ae0120acd3ad7 (patch)
treef089bbd244aad5d5686360080f93ee9e8592a39d /fs/namei.c
parentba331d5decbfe1cc8b1bf10fb7005f4b972c4f0e (diff)
Fix full_name_hash() behaviour when length is a multiple of 8
We want it to match what hash_name() is doing, which means extra multiply by 9 in this case... Reported-and-Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/namei.c')
-rw-r--r--fs/namei.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/namei.c b/fs/namei.c
index a94a7f9a03ea..bd313d680d34 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1439,10 +1439,10 @@ unsigned int full_name_hash(const unsigned char *name, unsigned int len)
1439 1439
1440 for (;;) { 1440 for (;;) {
1441 a = *(unsigned long *)name; 1441 a = *(unsigned long *)name;
1442 hash *= 9;
1443 if (len < sizeof(unsigned long)) 1442 if (len < sizeof(unsigned long))
1444 break; 1443 break;
1445 hash += a; 1444 hash += a;
1445 hash *= 9;
1446 name += sizeof(unsigned long); 1446 name += sizeof(unsigned long);
1447 len -= sizeof(unsigned long); 1447 len -= sizeof(unsigned long);
1448 if (!len) 1448 if (!len)