Author: tridge
Date: 2005-06-21 04:23:05 +0000 (Tue, 21 Jun 2005)
New Revision: 7792

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7792

Log:
make the allocation size rounding in pvfs configurable

Modified:
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c
   branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.c
   branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.h


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c   2005-06-21 03:51:54 UTC 
(rev 7791)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c   2005-06-21 04:23:05 UTC 
(rev 7792)
@@ -198,7 +198,6 @@
 */
 uint64_t pvfs_round_alloc_size(struct pvfs_state *pvfs, uint64_t size)
 {
-       const uint64_t round_value = 511;
-       if (size == 0) return 0;
-       return (size + round_value) & ~round_value;
+       const uint32_t round_value = pvfs->alloc_size_rounding;
+       return round_value * ((size + round_value - 1)/round_value);
 }

Modified: branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.c   2005-06-21 03:51:54 UTC 
(rev 7791)
+++ branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.c   2005-06-21 04:23:05 UTC 
(rev 7792)
@@ -51,6 +51,9 @@
                pvfs->flags |= PVFS_FLAG_FAKE_OPLOCKS;
        }
 
+       /* this must be a power of 2 */
+       pvfs->alloc_size_rounding = lp_parm_int(-1, "posix", 
"allocationrounding", 512);
+
 #if HAVE_XATTR_SUPPORT
        if (lp_parm_bool(snum, "posix", "xattr", True)) pvfs->flags |= 
PVFS_FLAG_XATTR_ENABLE;
 #endif

Modified: branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.h
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.h   2005-06-21 03:51:54 UTC 
(rev 7791)
+++ branches/SAMBA_4_0/source/ntvfs/posix/vfs_posix.h   2005-06-21 04:23:05 UTC 
(rev 7792)
@@ -72,6 +72,9 @@
        /* if posix:eadb is set, then this gets setup */
        struct tdb_wrap *ea_db;
 
+       /* the allocation size rounding */
+       uint32_t alloc_size_rounding;
+       
        /* used to accelerate acl mapping */
        struct {
                const struct dom_sid *creator_owner;

Reply via email to