summaryrefslogtreecommitdiff
path: root/sys/fs/msdosfs
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2005-09-14 15:07:22 +0000
committerchristos <christos@NetBSD.org>2005-09-14 15:07:22 +0000
commitfe968d175638ac597f44df25eebc38f052d019b0 (patch)
tree7b35c37cb0a40b185ace37cbeb7a522526d7c3e6 /sys/fs/msdosfs
parent1d4573eec9071ff4f1ae47a09cb5f759b3349079 (diff)
PR/31312: Juan RP: Don't use negative cacheing on msdosfs, because of the
evil case preserving and case sensitive semantics. From FreeBSD.
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r--sys/fs/msdosfs/msdosfs_lookup.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/fs/msdosfs/msdosfs_lookup.c b/sys/fs/msdosfs/msdosfs_lookup.c
index 4dc80ec4129..330bd62d103 100644
--- a/sys/fs/msdosfs/msdosfs_lookup.c
+++ b/sys/fs/msdosfs/msdosfs_lookup.c
@@ -1,4 +1,4 @@
-/* $NetBSD: msdosfs_lookup.c,v 1.5 2005/05/29 21:00:29 christos Exp $ */
+/* $NetBSD: msdosfs_lookup.c,v 1.6 2005/09/14 15:07:22 christos Exp $ */
/*-
* Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_lookup.c,v 1.5 2005/05/29 21:00:29 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_lookup.c,v 1.6 2005/09/14 15:07:22 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -397,11 +397,18 @@ notfound:
return (EJUSTRETURN);
}
+#if 0
/*
* Insert name into cache (as non-existent) if appropriate.
+ *
+ * XXX Negative caching is broken for msdosfs because the name
+ * cache doesn't understand peculiarities such as case insensitivity
+ * and 8.3 filenames. Hence, it may not invalidate all negative
+ * entries if a file with this name is later created.
*/
if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE)
cache_enter(vdp, *vpp, cnp);
+#endif
return (ENOENT);