From 56b752512597acaffa94a979ef9140760e0f5cf3 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 13 Sep 2012 10:13:21 -0700 Subject: Sigh :-(. Removing optimization prematurely is the root of all evil :-(. Sorry for the mistake, but the LastDir singleton cache in vfs_ChDir() actually plays an important role. When we're processing a stream of SMB1/SMB2/SMB3 requests we don't want to add a chdir()/getcwd() system call pair on every request if they're all on the same connection and dealing with the same base path. I did some testing with a program that times 1,000,000 chdir() requests vs. 1,000,000 strcmp requests and it's a penalty of 10x doing the system calls. Just because it's old code, doesn't mean it's bad :-(. Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Thu Sep 13 21:31:42 CEST 2012 on sn-devel-104 --- source3/smbd/globals.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source3/smbd/globals.h') diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index 1cefe51faa..566f04d71f 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -101,6 +101,7 @@ extern int conn_ctx_stack_ndx; struct vfs_init_function_entry; extern struct vfs_init_function_entry *backends; extern char *sparse_buf; +extern char *LastDir; struct smbd_parent_context; extern struct smbd_parent_context *am_parent; -- cgit