summaryrefslogtreecommitdiffstats
path: root/source/smbd/files.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/smbd/files.c')
-rw-r--r--source/smbd/files.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/source/smbd/files.c b/source/smbd/files.c
index b7ac58d5232..13e6dd9b288 100644
--- a/source/smbd/files.c
+++ b/source/smbd/files.c
@@ -122,12 +122,10 @@ NTSTATUS file_new(connection_struct *conn, files_struct **result)
chain_fsp = fsp;
- /* A new fsp invalidates the positive and
- negative fsp_fi_cache as the new fsp is pushed
- at the start of the list and we search from
- a cache hit to the *end* of the list. */
-
- ZERO_STRUCT(fsp_fi_cache);
+ /* A new fsp invalidates a negative fsp_fi_cache. */
+ if (fsp_fi_cache.fsp == NULL) {
+ ZERO_STRUCT(fsp_fi_cache);
+ }
*result = fsp;
return NT_STATUS_OK;