Sigh :-(. Removing optimization prematurely is the root of all evil :-(.
commit56b752512597acaffa94a979ef9140760e0f5cf3
authorJeremy Allison <jra@samba.org>
Thu, 13 Sep 2012 17:13:21 +0000 (13 10:13 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 13 Sep 2012 19:31:42 +0000 (13 21:31 +0200)
tree8a54245369ad6042366f4d24bffadd298efbecc4
parent23158d72c8de9318e1f136331ef4d788df243af7
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 <jra@samba.org>
Autobuild-Date(master): Thu Sep 13 21:31:42 CEST 2012 on sn-devel-104
source3/smbd/globals.c
source3/smbd/globals.h
source3/smbd/vfs.c