performance patch from HP-UX folks (cant remember who)
authorGerald Carter <jerry@samba.org>
Tue, 28 Jan 2003 02:15:11 +0000 (02:15 +0000)
committerGerald Carter <jerry@samba.org>
Tue, 28 Jan 2003 02:15:11 +0000 (02:15 +0000)
(This used to be commit d6c22e693efee88c17f1f0f6c861e7101b3fec99)

source3/smbd/quotas.c

index 90fd4bbdac0eb9112b59ee272391424513e2d865..9d3bfe2d64d0351af5494f962fe7c3fd0b8a9056 100644 (file)
@@ -886,10 +886,21 @@ BOOL disk_quotas(const char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB
 #if !defined(__FreeBSD__) && !defined(AIX) && !defined(__OpenBSD__)
   char dev_disk[256];
   SMB_STRUCT_STAT S;
+
   /* find the block device file */
-  if ((sys_stat(path, &S)<0) ||
-      (devnm(S_IFBLK, S.st_dev, dev_disk, 256, 0)<0)) return (False);
-#endif
+
+#ifdef HPUX
+  /* Need to set the cache flag to 1 for HPUX. Seems
+   * to have a significant performance boost when
+   * lstat calls on /dev access this function.
+   */
+  if ((sys_stat(path, &S)<0) || (devnm(S_IFBLK, S.st_dev, dev_disk, 256, 1)<0))
+#else
+  if ((sys_stat(path, &S)<0) || (devnm(S_IFBLK, S.st_dev, dev_disk, 256, 0)<0)) 
+       return (False);
+#endif /* ifdef HPUX */
+
+#endif /* !defined(__FreeBSD__) && !defined(AIX) && !defined(__OpenBSD__) */
 
   euser_id = geteuid();