cifs: reduce false positives with inode aliasing serverino autodisable
authorJeff Layton <jlayton@redhat.com>
Mon, 2 Aug 2010 21:43:54 +0000 (17:43 -0400)
committerSteve French <sfrench@us.ibm.com>
Thu, 5 Aug 2010 17:17:50 +0000 (17:17 +0000)
commit5acfec2502cf60a91dc1959e476b588ecb3a1b8a
tree52742d8c6643d534b37d60aad918cbe38c695665
parent67b7626a0512d12e34b38ff45e32c693cf9c79a1
cifs: reduce false positives with inode aliasing serverino autodisable

It turns out that not all directory inodes with dentries on the
i_dentry list are unusable here. We only consider them unusable if they
are still hashed or if they have a root dentry attached.

Full disclosure -- this check is inherently racy. There's nothing that
stops someone from slapping a new dentry onto this inode just after
this check, or hashing an existing one that's already attached. So,
this is really a "best effort" thing to work around misbehaving servers.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/inode.c