]> git.baikalelectronics.ru Git - kernel.git/commit
cifs: fix length calculation for converted unicode readdir names
authorJeff Layton <jlayton@redhat.com>
Fri, 5 Feb 2010 18:14:00 +0000 (13:14 -0500)
committerSteve French <sfrench@us.ibm.com>
Sat, 6 Feb 2010 06:25:16 +0000 (06:25 +0000)
commit4bcb68cd1e264d7921f9eea59f2e5d769c90dd79
treef191cf3d7c5569215fd3ca1e41e1eb3d32fbfda6
parent93636538632d8a656127a42f684ddbe859527a8a
cifs: fix length calculation for converted unicode readdir names

cifs_from_ucs2 returns the length of the converted name, including the
length of the NULL terminator. We don't want to include the NULL
terminator in the dentry name length however since that'll throw off the
hash calculation for the dentry cache.

I believe that this is the root cause of several problems that have
cropped up recently that seem to be papered over with the "noserverino"
mount option. More confirmation of that would be good, but this is
clearly a bug and it fixes at least one reproducible problem that
was reported.

This patch fixes at least this reproducer in this kernel.org bug:

    http://bugzilla.kernel.org/show_bug.cgi?id=15088#c12

Reported-by: Bjorn Tore Sund <bjorn.sund@it.uib.no>
Acked-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/readdir.c