The branch, master has been updated
       via  c43d52e57bd vfs: Simplify xattr_tdb_getxattrat_send()
       via  8fbb3d2cece param: Simplify check_ad_dc_required_mods()
       via  b28f40c6fc4 lib: Avoid DEBUGADDs in debug_lock_order()
       via  b34fc682c51 auth: Align integer types
       via  2cb1ee26d45 auth: Avoid a DEBUGADD in kerberos_decode_pac()
       via  271228384c4 auth: Refactor check_pac_checksum to improve readability
       via  0608800637c lib: Remove unused str_list_show
       via  b8dd4321d81 smbd: Modernize a DEBUG
       via  48a2c9acb7e smbd: Simplify smbd_do_qfsinfo()
       via  dd7be79072f smbd: smbd_do_qfsinfo() can rely on an fsp now, use 
fsp's stat info
       via  fb3dc422d34 lib: Streamline finding a file's block device for quota 
code
       via  96186f96172 lib: Convert sys_path_to_bdev to talloc
       via  a7e9e82e856 vfs: Add "fsp" to SMB_VFS_SET_QUOTA
       via  34d3b324f37 vfs: Change SMB_VFS_GET_QUOTA to take a fsp instead of 
a name
       via  1e0e0f5c757 smbd: Make disk_quotas() take a fsp
       via  1145665fbe0 vfs: Remove SMB_VFS_STATVFS
       via  6d3e0866f84 smbd: Call FSTATVFS instead of STATVFS
       via  32af6b1056e vfs: Add SMB_VFS_FSTATVFS
       via  b9a646530d3 vfs_gpfs: Use fstatvfs() instead of the path-based 
statvfs()
       via  dd95b1a503f vfs_default: Use fstatvfs() instead of the path-based 
statvfs()
       via  41264bb4c08 lib: Remove sys_fsusage()
       via  268f0277336 smbserver: Convert callers of sys_fsusage to sys_statvfs
       via  85685fbd7e3 lib: Add statvfs2fsusage
       via  2a6a5cf40d0 lib: Move statvfs.[ch] to lib/util
       via  e5444c27dec smbd: Give statvfs.c its own header file
       via  7d06923eca4 smbd: Add sys_fstatvfs()
       via  24ca9a75670 smbd: Factor out initializing vfs_statvfs_struct from 
system info
       via  ce3fb69a6bf vfs: Change SMB_VFS_DISK_FREE to take a fsp
       via  b7c0e2cad4c torture: Avoid a few casts in vfstest
       via  ee1b5788848 smbd: Make sys_disk_free() take a fsp
       via  62bf4a854b1 smbd: Make get_dfree_info() take a fsp
       via  9d04d586a80 smbd: Use fsp->fsp_name in smbd_do_qfsinfo()
       via  dd0f3943f0e smbd/smb1: Open a pathref's fsp_name to get_dfree_info()
       via  74469da0ddb smbd/smb1: send pathref fsp of share root to 
smbd_do_qfsinfo
       via  4f93cb4560a smbd: Slightly simplify smbd_smb2_lock_send()
       via  557190d00ce adouble: Use strequal_m instead of strcasecmp_m
       via  802e814b8ef smbd: Simply return status instead of special-casing 
errors
       via  c7271a79d5d profiling: Fix a comment
       via  0db47765a46 lib: Simplify conv_str_size
       via  f302274ed3c lib: Move conv_str_bool() to its only user
       via  68a6052b78b lib: Avoid an "else", we return in the if-branch
       via  1ffbbdb138e lib: Remove very little used wrapper conv_str_u64()
       via  bdaa8c78759 lib: Clean up includes in util_strlist_v3.c
       via  1b5d10db647 smbd: Save a few lines with direct smb_file_time 
initialization
       via  13765f87526 vfs_full_audit: Print NTSTATUS errors
       via  3be7a6f9f27 python: Align py_ntstatus.c with py_hresult.c
       via  59c1531e1ba python: Simplify py_hresult.c
       via  81ccaa2a590 torture: Align an integer type
       via  027b3cbfe12 third_party: init vars for -Og on debian testing
       via  0cec5cc3f44 clang-format: Cut at 79 chars
      from  14d13d1ba15 lib/pthreadpool: Add some pthreadpool_pipe unit tests

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c43d52e57bd6d8935d505b2ccc17f077a91030c0
Author: Volker Lendecke <[email protected]>
Date:   Mon Feb 9 13:10:07 2026 +0100

    vfs: Simplify xattr_tdb_getxattrat_send()
    
    Avoid calls to SMB_VFS_CHDIR and SMB_VFS_GETWD by using
    openat_pathref_fsp()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    
    Autobuild-User(master): Anoop C S <[email protected]>
    Autobuild-Date(master): Sun Feb 15 11:45:52 UTC 2026 on atb-devel-224

commit 8fbb3d2cece34e7e21919e902b8613c0c3ca9f0a
Author: Volker Lendecke <[email protected]>
Date:   Mon Feb 9 13:00:22 2026 +0100

    param: Simplify check_ad_dc_required_mods()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit b28f40c6fc4eda44239a21dfb2fed1ebefa0b253
Author: Volker Lendecke <[email protected]>
Date:   Tue Feb 3 18:58:06 2026 +0100

    lib: Avoid DEBUGADDs in debug_lock_order()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit b34fc682c519c92f942efa1ea44191f61158bfbc
Author: Volker Lendecke <[email protected]>
Date:   Tue Feb 3 18:49:31 2026 +0100

    auth: Align integer types
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 2cb1ee26d45ce0fb14c8ef014ecf2c8127828e71
Author: Volker Lendecke <[email protected]>
Date:   Tue Feb 3 18:47:34 2026 +0100

    auth: Avoid a DEBUGADD in kerberos_decode_pac()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 271228384c4d6f015aa725af2e63b0aef1686ef0
Author: Volker Lendecke <[email protected]>
Date:   Tue Feb 3 18:34:44 2026 +0100

    auth: Refactor check_pac_checksum to improve readability
    
    Use ARRAY_SIZE over terminating array element. Easier to read for me.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 0608800637c5c4de0b80b5dea012875cfddd7b82
Author: Volker Lendecke <[email protected]>
Date:   Mon Jan 26 13:00:11 2026 +0100

    lib: Remove unused str_list_show
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit b8dd4321d81eeb867abcb1f44594a02a345726ce
Author: Volker Lendecke <[email protected]>
Date:   Sat Jan 31 11:09:59 2026 +0100

    smbd: Modernize a DEBUG
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 48a2c9acb7ed41d7916daca7112b4ee7d03339d4
Author: Volker Lendecke <[email protected]>
Date:   Thu Jan 29 16:18:06 2026 +0100

    smbd: Simplify smbd_do_qfsinfo()
    
    We can rely on fsp now, avoid passing and using fname
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit dd7be79072f3166a0636eda6580298554e9ee4f0
Author: Volker Lendecke <[email protected]>
Date:   Thu Jan 29 16:16:30 2026 +0100

    smbd: smbd_do_qfsinfo() can rely on an fsp now, use fsp's stat info
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit fb3dc422d348afb5473c675676aec5211fa30fb1
Author: Volker Lendecke <[email protected]>
Date:   Mon Jan 26 14:01:05 2026 +0100

    lib: Streamline finding a file's block device for quota code
    
    Use /proc/self/mountinfo to find the block device a file is mounted on for
    quotactl purposes.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 96186f961721e94e588e9887cff8e90eefac742c
Author: Volker Lendecke <[email protected]>
Date:   Mon Jan 26 15:35:39 2026 +0100

    lib: Convert sys_path_to_bdev to talloc
    
    Next we'll have sys_dev_to_bdev based on string_list_make, which is
    talloc-based.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit a7e9e82e8562134183db20a335ee7ba93e3e4bb7
Author: Volker Lendecke <[email protected]>
Date:   Wed Feb 11 12:29:54 2026 +0100

    vfs: Add "fsp" to SMB_VFS_SET_QUOTA
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 34d3b324f37c023c0b8c87f7a1f4feb18941e005
Author: Volker Lendecke <[email protected]>
Date:   Wed Jan 28 15:57:37 2026 +0100

    vfs: Change SMB_VFS_GET_QUOTA to take a fsp instead of a name
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 1e0e0f5c7579c9e9b348617b2dc08a5d79f5cce6
Author: Volker Lendecke <[email protected]>
Date:   Wed Jan 28 15:26:47 2026 +0100

    smbd: Make disk_quotas() take a fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 1145665fbe07bfcf30e8d60f999834cf270b116c
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:59:09 2026 +0100

    vfs: Remove SMB_VFS_STATVFS
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 6d3e0866f8464f7fec6c1124f5812e300af41301
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:46:30 2026 +0100

    smbd: Call FSTATVFS instead of STATVFS
    
    To get the fs capabilities we do an openat_pathref_fsp_dot(), which
    also avoids a call to SMB_VFS_STAT there.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 32af6b1056ee30e014c3a5c2e4a7a7e949f9ecf4
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 19 14:05:49 2025 +0100

    vfs: Add SMB_VFS_FSTATVFS
    
    To replace SMB_VFS_STATVFS next
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit b9a646530d38d773ee516bf0c10121982cdf988b
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:37:02 2026 +0100

    vfs_gpfs: Use fstatvfs() instead of the path-based statvfs()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit dd95b1a503fdf42fb1ce3c71477d6e67915ba897
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:36:40 2026 +0100

    vfs_default: Use fstatvfs() instead of the path-based statvfs()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 41264bb4c08a65385dfa61f6d0cbfb9414758b0d
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 23 19:08:16 2026 +0100

    lib: Remove sys_fsusage()
    
    "man statfs" on Linux says "Unless you need the f_type field, you
    should use the standard statvfs(3) interface instead.". We don't need
    f_type to get disk usage :-)
    
    We lose some of the older compatibility layers. Should these ever be
    needed again, we should add them to lib/util/statvfs.c an the single
    interface to retrieve file system usage info.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 268f02773363ea80122166a95f3748c1fe76b34c
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 23 18:52:00 2026 +0100

    smbserver: Convert callers of sys_fsusage to sys_statvfs
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 85685fbd7e3f5fda2577fbbabee8e2caa4977e75
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 23 18:34:57 2026 +0100

    lib: Add statvfs2fsusage
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 2a6a5cf40d08bf0dbb445019069885405f2ed5a0
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 23 16:40:09 2026 +0100

    lib: Move statvfs.[ch] to lib/util
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit e5444c27dec1dab882becb2ab9989959cf2f241d
Author: Volker Lendecke <[email protected]>
Date:   Sun Nov 23 08:09:10 2025 +0100

    smbd: Give statvfs.c its own header file
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 7d06923eca40889489a4a02fea3f589f073b3531
Author: Volker Lendecke <[email protected]>
Date:   Sun Nov 23 07:59:55 2025 +0100

    smbd: Add sys_fstatvfs()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 24ca9a756701dcd8d4ac4fc9f0d23d289301160d
Author: Volker Lendecke <[email protected]>
Date:   Sun Nov 23 07:52:46 2025 +0100

    smbd: Factor out initializing vfs_statvfs_struct from system info
    
    Patch is a bit confusing due to all the #ifdefs, but it's just some
    code shuffling to prepare for the next patch.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit ce3fb69a6bf06cde0652a5c9700833857e8f058e
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:15:53 2026 +0100

    vfs: Change SMB_VFS_DISK_FREE to take a fsp
    
    The modules that change the pathname need a synthetic_pathref now for
    the SMB_VFS_NEXT_DISK_FREE() call. I think this is the right thing to
    do anyway, as this goes through all the path scrutiny and does not
    depend on direct multi-component paths anymore.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit b7c0e2cad4c6a7c085bfa8c8896d2638a7ea30c3
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 18:08:10 2026 +0100

    torture: Avoid a few casts in vfstest
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit ee1b578884857e7fd36cb1e53905d21f2c10c032
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 13:38:56 2026 +0100

    smbd: Make sys_disk_free() take a fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 62bf4a854b1a3151a7943f58872440075102957a
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 13:21:24 2026 +0100

    smbd: Make get_dfree_info() take a fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 9d04d586a8059f57bfc18e949adaf5135a13e08d
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 13:15:44 2026 +0100

    smbd: Use fsp->fsp_name in smbd_do_qfsinfo()
    
    Both callers pass an fsp now, use that for get_dfree_info()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit dd0f3943f0ee4755a6a9d2a65f42e6be7573b69c
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 27 12:45:46 2026 +0100

    smbd/smb1: Open a pathref's fsp_name to get_dfree_info()
    
    Preparation for converting get_dfree_info() to directly take a fsp.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 74469da0ddbec414cea6601a42fa662a63e80ed9
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 23 13:16:09 2026 +0100

    smbd/smb1: send pathref fsp of share root to smbd_do_qfsinfo
    
    The other caller of this already passes one.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 4f93cb4560a823cdc6ac8b636d91edd76731de63
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 1 17:16:42 2025 +0200

    smbd: Slightly simplify smbd_smb2_lock_send()
    
    "<bool> == false" just looks wrong :-)
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 557190d00ce1b266142b78164e2c53f55c83eb10
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 16 15:55:47 2026 +0100

    adouble: Use strequal_m instead of strcasecmp_m
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 802e814b8ef1bafa83f11979e761878d98ef0e72
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 20 12:51:29 2026 +0100

    smbd: Simply return status instead of special-casing errors
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit c7271a79d5d5dd62a6b12c9a4327ae90b3c2beb7
Author: Volker Lendecke <[email protected]>
Date:   Tue Jan 20 11:35:24 2026 +0100

    profiling: Fix a comment
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 0db47765a467ba8887bd34e40bffbc0d4b934df4
Author: Volker Lendecke <[email protected]>
Date:   Mon Jan 26 10:43:44 2026 +0100

    lib: Simplify conv_str_size
    
    conv_str_size_error() from lib/util has almost the same code
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit f302274ed3c3f73cbdb8bf67aefa6a87855e18f3
Author: Volker Lendecke <[email protected]>
Date:   Sun Jan 25 11:17:30 2026 +0100

    lib: Move conv_str_bool() to its only user
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 68a6052b78b83e19e50dc7dbf3f02c3cdaf24b97
Author: Volker Lendecke <[email protected]>
Date:   Sun Jan 25 10:33:19 2026 +0100

    lib: Avoid an "else", we return in the if-branch
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 1ffbbdb138e86ec49034d1590d2c8b1459907409
Author: Volker Lendecke <[email protected]>
Date:   Sun Jan 25 10:28:45 2026 +0100

    lib: Remove very little used wrapper conv_str_u64()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit bdaa8c78759353c2e0a6730bd511e3d07f2235e2
Author: Volker Lendecke <[email protected]>
Date:   Sun Jan 25 10:19:08 2026 +0100

    lib: Clean up includes in util_strlist_v3.c
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 1b5d10db647f9b1f7f1bc16b89a522101554233f
Author: Volker Lendecke <[email protected]>
Date:   Sat Jan 31 11:59:34 2026 +0100

    smbd: Save a few lines with direct smb_file_time initialization
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 13765f8752603e4e5b4bc7407461790a7723c384
Author: Volker Lendecke <[email protected]>
Date:   Mon Feb 2 19:21:29 2026 +0100

    vfs_full_audit: Print NTSTATUS errors
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 3be7a6f9f274788e7ef0b773a22accbeb9437b88
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 30 12:21:45 2026 +0100

    python: Align py_ntstatus.c with py_hresult.c
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 59c1531e1ba03c5382deb0a8196653a19773a95c
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 30 12:20:48 2026 +0100

    python: Simplify py_hresult.c
    
    CFLAGS=-Og did not finish this file. Also, this makes the file a few
    hundred kilobytes smaller
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 81ccaa2a5904f978364dea61afe7ab636fa13e38
Author: Volker Lendecke <[email protected]>
Date:   Wed Jan 28 16:03:00 2026 +0100

    torture: Align an integer type
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 027b3cbfe12c9d5e2c4663290d6f8f25a31a6bcc
Author: Volker Lendecke <[email protected]>
Date:   Tue Feb 3 14:35:20 2026 +0100

    third_party: init vars for -Og on debian testing
    
    When building on debian testing with -Og, gcc complains about these
    two uninitialized variables. Not sure how to deal with those, I'm
    happy to re-fix if a new upstream patch overwrites them.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

commit 0cec5cc3f44de0442b49cf7775d0a7fb839364ef
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 20 22:55:36 2024 +0200

    clang-format: Cut at 79 chars
    
    As discussed at FOSDEM with Andreas: This makes emacs a bit nicer when
    running on a 161x40 terminal in two columns :-)
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 .clang-format                           |   2 +-
 auth/kerberos/kerberos_pac.c            |  23 +-
 examples/VFS/skel_opaque.c              |  31 +-
 examples/VFS/skel_transparent.c         |  39 +-
 lib/dbwrap/dbwrap.c                     |  31 +-
 lib/tsocket/tsocket_bsd.c               |  13 +-
 lib/util/fsusage.c                      | 165 ---------
 lib/util/samba_util.h                   |  31 --
 {source3/smbd => lib/util}/statvfs.c    | 197 +++++++---
 lib/util/statvfs.h                      |  61 +++
 lib/util/util_str.c                     |  59 +--
 lib/util/util_strlist.c                 |  15 -
 lib/util/util_strlist.h                 |   6 -
 lib/util/util_strlist_v3.c              |   6 +-
 lib/util/wscript_build                  |   2 +-
 source3/include/proto.h                 |  12 +-
 source3/include/vfs.h                   | 112 +++---
 source3/include/vfs_macros.h            |  40 +-
 source3/lib/adouble.c                   |   2 +-
 source3/lib/sysquotas.c                 | 168 +++++++--
 source3/lib/util_str.c                  |  34 +-
 source3/modules/vfs_cap.c               |  76 ++--
 source3/modules/vfs_ceph.c              |  19 +-
 source3/modules/vfs_ceph_new.c          |  19 +-
 source3/modules/vfs_ceph_snapshots.c    |  67 ++--
 source3/modules/vfs_default.c           |  58 ++-
 source3/modules/vfs_default_quota.c     |  47 ++-
 source3/modules/vfs_fake_dfq.c          |  32 +-
 source3/modules/vfs_fruit.c             |  26 +-
 source3/modules/vfs_full_audit.c        | 632 ++++++++++++++++++++++----------
 source3/modules/vfs_glusterfs.c         |  35 +-
 source3/modules/vfs_gpfs.c              |  46 ++-
 source3/modules/vfs_media_harmony.c     |  65 ++--
 source3/modules/vfs_not_implemented.c   |  28 +-
 source3/modules/vfs_recycle.c           |   4 +-
 source3/modules/vfs_shadow_copy2.c      |  68 ++--
 source3/modules/vfs_snapper.c           |  71 ++--
 source3/modules/vfs_time_audit.c        |  53 +--
 source3/modules/vfs_unityed_media.c     |  59 ++-
 source3/modules/vfs_xattr_tdb.c         |  54 +--
 source3/param/loadparm.c                |  15 +-
 source3/printing/printing.c             |  22 +-
 source3/profile/profile.c               |   2 +-
 source3/rpcclient/cmd_spotlight.c       |   6 +-
 source3/smbd/close.c                    |   4 +-
 source3/smbd/dfree.c                    |  23 +-
 source3/smbd/fileio.c                   |   7 +-
 source3/smbd/globals.h                  |   1 -
 source3/smbd/ntquotas.c                 |  17 +-
 source3/smbd/proto.h                    |  19 +-
 source3/smbd/quotas.c                   |  41 ++-
 source3/smbd/smb1_reply.c               |  35 +-
 source3/smbd/smb1_trans2.c              |  29 +-
 source3/smbd/smb2_getinfo.c             |   5 +-
 source3/smbd/smb2_lock.c                |   2 +-
 source3/smbd/smb2_server.c              |  17 +-
 source3/smbd/smb2_trans2.c              |  46 +--
 source3/smbd/vfs.c                      |  71 ++--
 source3/torture/cmd_vfs.c               |  40 +-
 source3/torture/mangle_test.c           |   3 +-
 source3/wscript_build                   |   2 +-
 source4/client/cifsdd.c                 |  40 +-
 source4/ntvfs/posix/pvfs_fsinfo.c       |  14 +-
 source4/ntvfs/simple/vfs_simple.c       |  12 +-
 source4/scripting/bin/gen_hresult.py    |  17 +-
 source4/scripting/bin/gen_ntstatus.py   |   9 +-
 third_party/heimdal/lib/base/heimbase.c |   2 +-
 third_party/ngtcp2/lib/ngtcp2_acktr.c   |   2 +-
 68 files changed, 1724 insertions(+), 1287 deletions(-)
 delete mode 100644 lib/util/fsusage.c
 rename {source3/smbd => lib/util}/statvfs.c (55%)
 create mode 100644 lib/util/statvfs.h


Changeset truncated at 500 lines:

diff --git a/.clang-format b/.clang-format
index c4c12b9955b..39ebdef56a4 100644
--- a/.clang-format
+++ b/.clang-format
@@ -20,7 +20,7 @@ BraceWrapping:
     AfterControlStatement: MultiLine
 BreakBeforeBinaryOperators: None
 BreakBeforeBraces: Custom
-ColumnLimit: 80
+ColumnLimit: 79
 ContinuationIndentWidth: 8
 IndentCaseLabels: false
 IndentGotoLabels: false
diff --git a/auth/kerberos/kerberos_pac.c b/auth/kerberos/kerberos_pac.c
index 321c6cafb37..42da0000139 100644
--- a/auth/kerberos/kerberos_pac.c
+++ b/auth/kerberos/kerberos_pac.c
@@ -55,10 +55,10 @@ krb5_error_code check_pac_checksum(DATA_BLOB pac_data,
                /* RFC8009 types. Not supported by AD yet but used by FreeIPA 
and MIT Kerberos */
                {CKSUMTYPE_HMAC_SHA256_128_AES128, 
ENCTYPE_AES128_CTS_HMAC_SHA256_128},
                {CKSUMTYPE_HMAC_SHA384_192_AES256, 
ENCTYPE_AES256_CTS_HMAC_SHA384_192},
-               {0, 0},
        };
+       size_t num_supported_types = ARRAY_SIZE(supported_types);
 
-       for(idx = 0; supported_types[idx].cksum_type != 0; idx++) {
+       for (idx = 0; idx < num_supported_types; idx++) {
                if (sig->type == supported_types[idx].cksum_type) {
                        if (KRB5_KEY_TYPE(keyblock) != 
supported_types[idx].enc_type) {
                                return EINVAL;
@@ -70,7 +70,7 @@ krb5_error_code check_pac_checksum(DATA_BLOB pac_data,
 
        /* do not do key type check for HMAC-MD5 */
        if ((sig->type != CKSUMTYPE_HMAC_MD5) &&
-           (supported_types[idx].cksum_type == 0)) {
+           (idx == num_supported_types)) {
                DEBUG(2,("check_pac_checksum: Checksum Type %d is not 
supported\n",
                        (int)sig->type));
                return EINVAL;
@@ -143,7 +143,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
        DATA_BLOB modified_pac_blob;
 
        NTTIME tgs_authtime_nttime;
-       int i;
+       uint32_t i;
 
        struct PAC_SIGNATURE_DATA *srv_sig_ptr = NULL;
        struct PAC_SIGNATURE_DATA *kdc_sig_ptr = NULL;
@@ -414,14 +414,13 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
                 logon_info->info3.base.account_name.string,
                 logon_info->info3.base.full_name.string));
 
-       DEBUG(10,("Successfully validated Kerberos PAC\n"));
-
        if (DEBUGLEVEL >= 10) {
-               const char *s;
-               s = NDR_PRINT_STRUCT_STRING(tmp_ctx, PAC_DATA, pac_data);
-               if (s) {
-                       DEBUGADD(10,("%s\n", s));
-               }
+               const char *s = NDR_PRINT_STRUCT_STRING(
+                       tmp_ctx, PAC_DATA, pac_data);
+
+               DEBUG(10,("Successfully validated Kerberos PAC\n%s%c",
+                         s != NULL ? s : "",
+                         s != NULL ? '\n' : '\0'));
        }
 
        if (pac_data_out) {
@@ -447,7 +446,7 @@ NTSTATUS kerberos_pac_logon_info(TALLOC_CTX *mem_ctx,
 {
        NTSTATUS nt_status;
        struct PAC_DATA *pac_data;
-       int i;
+       uint32_t i;
        nt_status = kerberos_decode_pac(mem_ctx,
                                        blob,
                                        context,
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 92574b30348..9571eb9244d 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -46,10 +46,10 @@ static void skel_disconnect(vfs_handle_struct *handle)
 }
 
 static uint64_t skel_disk_free(vfs_handle_struct *handle,
-                               const struct smb_filename *smb_fname,
-                               uint64_t *bsize,
-                               uint64_t *dfree,
-                               uint64_t *dsize)
+                              struct files_struct *fsp,
+                              uint64_t *bsize,
+                              uint64_t *dfree,
+                              uint64_t *dsize)
 {
        *bsize = 0;
        *dfree = 0;
@@ -58,17 +58,20 @@ static uint64_t skel_disk_free(vfs_handle_struct *handle,
 }
 
 static int skel_get_quota(vfs_handle_struct *handle,
-                               const struct smb_filename *smb_fname,
-                               enum SMB_QUOTA_TYPE qtype,
-                               unid_t id,
-                               SMB_DISK_QUOTA *dq)
+                         struct files_struct *fsp,
+                         enum SMB_QUOTA_TYPE qtype,
+                         unid_t id,
+                         SMB_DISK_QUOTA *dq)
 {
        errno = ENOSYS;
        return -1;
 }
 
-static int skel_set_quota(vfs_handle_struct *handle, enum SMB_QUOTA_TYPE qtype,
-                         unid_t id, SMB_DISK_QUOTA *dq)
+static int skel_set_quota(vfs_handle_struct *handle,
+                         struct files_struct *fsp,
+                         enum SMB_QUOTA_TYPE qtype,
+                         unid_t id,
+                         SMB_DISK_QUOTA *dq)
 {
        errno = ENOSYS;
        return -1;
@@ -83,9 +86,9 @@ static int skel_get_shadow_copy_data(vfs_handle_struct 
*handle,
        return -1;
 }
 
-static int skel_statvfs(struct vfs_handle_struct *handle,
-                               const struct smb_filename *smb_fname,
-                               struct vfs_statvfs_struct *statbuf)
+static int skel_fstatvfs(struct vfs_handle_struct *handle,
+                        struct files_struct *fsp,
+                        struct vfs_statvfs_struct *statbuf)
 {
        errno = ENOSYS;
        return -1;
@@ -961,7 +964,7 @@ static struct vfs_fn_pointers skel_opaque_fns = {
        .get_quota_fn = skel_get_quota,
        .set_quota_fn = skel_set_quota,
        .get_shadow_copy_data_fn = skel_get_shadow_copy_data,
-       .statvfs_fn = skel_statvfs,
+       .fstatvfs_fn = skel_fstatvfs,
        .fs_capabilities_fn = skel_fs_capabilities,
        .get_dfs_referrals_fn = skel_get_dfs_referrals,
        .create_dfs_pathat_fn = skel_create_dfs_pathat,
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index c28963fa5dd..aa186d7ef17 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -49,27 +49,30 @@ static void skel_disconnect(vfs_handle_struct *handle)
 }
 
 static uint64_t skel_disk_free(vfs_handle_struct *handle,
-                               const struct smb_filename *smb_fname,
-                               uint64_t *bsize,
-                               uint64_t *dfree,
-                               uint64_t *dsize)
+                              struct files_struct *fsp,
+                              uint64_t *bsize,
+                              uint64_t *dfree,
+                              uint64_t *dsize)
 {
-       return SMB_VFS_NEXT_DISK_FREE(handle, smb_fname, bsize, dfree, dsize);
+       return SMB_VFS_NEXT_DISK_FREE(handle, fsp, bsize, dfree, dsize);
 }
 
 static int skel_get_quota(vfs_handle_struct *handle,
-                               const struct smb_filename *smb_fname,
-                               enum SMB_QUOTA_TYPE qtype,
-                               unid_t id,
-                               SMB_DISK_QUOTA *dq)
+                         struct files_struct *fsp,
+                         enum SMB_QUOTA_TYPE qtype,
+                         unid_t id,
+                         SMB_DISK_QUOTA *dq)
 {
-       return SMB_VFS_NEXT_GET_QUOTA(handle, smb_fname, qtype, id, dq);
+       return SMB_VFS_NEXT_GET_QUOTA(handle, fsp, qtype, id, dq);
 }
 
-static int skel_set_quota(vfs_handle_struct *handle, enum SMB_QUOTA_TYPE qtype,
-                         unid_t id, SMB_DISK_QUOTA *dq)
+static int skel_set_quota(vfs_handle_struct *handle,
+                         struct files_struct *fsp,
+                         enum SMB_QUOTA_TYPE qtype,
+                         unid_t id,
+                         SMB_DISK_QUOTA *dq)
 {
-       return SMB_VFS_NEXT_SET_QUOTA(handle, qtype, id, dq);
+       return SMB_VFS_NEXT_SET_QUOTA(handle, fsp, qtype, id, dq);
 }
 
 static int skel_get_shadow_copy_data(vfs_handle_struct *handle,
@@ -81,11 +84,11 @@ static int skel_get_shadow_copy_data(vfs_handle_struct 
*handle,
                                                 labels);
 }
 
-static int skel_statvfs(struct vfs_handle_struct *handle,
-                       const struct smb_filename *smb_fname,
-                       struct vfs_statvfs_struct *statbuf)
+static int skel_fstatvfs(struct vfs_handle_struct *handle,
+                        struct files_struct *fsp,
+                        struct vfs_statvfs_struct *statbuf)
 {
-       return SMB_VFS_NEXT_STATVFS(handle, smb_fname, statbuf);
+       return SMB_VFS_NEXT_FSTATVFS(handle, fsp, statbuf);
 }
 
 static uint32_t skel_fs_capabilities(struct vfs_handle_struct *handle,
@@ -1271,7 +1274,7 @@ static struct vfs_fn_pointers skel_transparent_fns = {
        .get_quota_fn = skel_get_quota,
        .set_quota_fn = skel_set_quota,
        .get_shadow_copy_data_fn = skel_get_shadow_copy_data,
-       .statvfs_fn = skel_statvfs,
+       .fstatvfs_fn = skel_fstatvfs,
        .fs_capabilities_fn = skel_fs_capabilities,
        .get_dfs_referrals_fn = skel_get_dfs_referrals,
        .create_dfs_pathat_fn = skel_create_dfs_pathat,
diff --git a/lib/dbwrap/dbwrap.c b/lib/dbwrap/dbwrap.c
index 19f6c29b069..c4a6ed52864 100644
--- a/lib/dbwrap/dbwrap.c
+++ b/lib/dbwrap/dbwrap.c
@@ -151,17 +151,24 @@ dbwrap_merge_dbs(struct db_context *to, struct db_context 
*from, int flags)
 
 const char *locked_dbs[DBWRAP_LOCK_ORDER_MAX];
 
-static void debug_lock_order(int level)
+static const char *lock_order_dbg(void)
 {
        int i;
-       DEBUG(level, ("lock order:"));
-       for (i=0; i<DBWRAP_LOCK_ORDER_MAX; i++) {
-               DEBUGADD(level,
-                        (" %d:%s",
-                         i + 1,
-                         locked_dbs[i] ? locked_dbs[i] : "<none>"));
+       char *msg = talloc_strdup(talloc_tos(), "lock order:");
+
+       for (i = 0; i < DBWRAP_LOCK_ORDER_MAX; i++) {
+               talloc_asprintf_addbuf(
+                       &msg,
+                       " %d:%s",
+                       i + 1,
+                       locked_dbs[i] != NULL ? locked_dbs[i] : "<none>");
+       }
+
+       if (msg == NULL) {
+               return "lock order: <out of memory>\n";
        }
-       DEBUGADD(level, ("\n"));
+
+       return msg;
 }
 
 void dbwrap_lock_order_lock(const char *db_name,
@@ -183,19 +190,19 @@ void dbwrap_lock_order_lock(const char *db_name,
        for (idx=lock_order-1; idx<DBWRAP_LOCK_ORDER_MAX; idx++) {
                if (locked_dbs[idx] != NULL) {
                        DBG_ERR("Lock order violation: Trying %s at %d while "
-                               "%s at %d is locked\n",
+                               "%s at %d is locked\n%s\n",
                                db_name,
                                (int)lock_order,
                                locked_dbs[idx],
-                               idx + 1);
-                       debug_lock_order(0);
+                               idx + 1,
+                               lock_order_dbg());
                        smb_panic("lock order violation");
                }
        }
 
        locked_dbs[lock_order-1] = db_name;
 
-       debug_lock_order(10);
+       DBG_DEBUG("%s\n", lock_order_dbg());
 }
 
 void dbwrap_lock_order_unlock(const char *db_name,
diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c
index aab30f12cb5..4c7684675e8 100644
--- a/lib/tsocket/tsocket_bsd.c
+++ b/lib/tsocket/tsocket_bsd.c
@@ -31,6 +31,7 @@
 #include "lib/util/util_net.h"
 #include "lib/util/samba_util.h"
 #include "lib/async_req/async_sock.h"
+#include "lib/util/smb_strtox.h"
 
 static int tsocket_bsd_error_from_errno(int ret,
                                        int sys_errno,
@@ -443,7 +444,7 @@ int _tsocket_address_inet_from_hostport_strings(TALLOC_CTX 
*mem_ctx,
        int ret;
        char *s_addr = NULL;
        uint16_t s_port = default_port;
-       bool conv_ret;
+       int error = 0;
        bool is_ipv6_by_squares = false;
 
        if (host_port_addr == NULL) {
@@ -480,8 +481,9 @@ int _tsocket_address_inet_from_hostport_strings(TALLOC_CTX 
*mem_ctx,
                        return -1;
                }
                cport = port_sep + 1;
-               conv_ret = conv_str_u64(cport, &port);
-               if (!conv_ret) {
+               port = smb_strtoull(
+                       cport, NULL, 10, &error, SMB_STR_FULL_STR_CONV);
+               if (error != 0) {
                        errno = EINVAL;
                        return -1;
                }
@@ -498,8 +500,9 @@ int _tsocket_address_inet_from_hostport_strings(TALLOC_CTX 
*mem_ctx,
        } else if (pl_period != NULL && port_sep != NULL) {
                /* IPv4 with port - more than one period in string */
                cport = port_sep + 1;
-               conv_ret = conv_str_u64(cport, &port);
-               if (!conv_ret) {
+               port = smb_strtoull(
+                       cport, NULL, 10, &error, SMB_STR_FULL_STR_CONV);
+               if (error != 0) {
                        errno = EINVAL;
                        return -1;
                }
diff --git a/lib/util/fsusage.c b/lib/util/fsusage.c
deleted file mode 100644
index c8dc0b3db9b..00000000000
--- a/lib/util/fsusage.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-   functions to calculate the free disk space
-   Copyright (C) Andrew Tridgell 1998-2000
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "replace.h"
-#include "lib/util/samba_util.h"
-#include "system/filesys.h"
-
-/**
- * @file
- * @brief Utility functions for getting the amount of free disk space
- */
-
-/* Return the number of TOSIZE-byte blocks used by
-   BLOCKS FROMSIZE-byte blocks, rounding away from zero.
-*/
-static uint64_t adjust_blocks(uint64_t blocks, uint64_t fromsize, uint64_t 
tosize)
-{
-       if (fromsize == tosize) { /* e.g., from 512 to 512 */
-               return blocks;
-       }
-
-       if (fromsize > tosize) { /* e.g., from 2048 to 512 */
-               return blocks * (fromsize / tosize);
-       }
-
-       /* e.g., from 256 to 512 */
-       /* Protect against broken filesystems... */
-
-       if (fromsize == 0) {
-               fromsize = tosize;
-       }
-
-       return (blocks + 1) / (tosize / fromsize);
-}
-
-/**
- * Retrieve amount of free disk space.
- * this does all of the system specific guff to get the free disk space.
- * It is derived from code in the GNU fileutils package, but has been
- * considerably mangled for use here
- *
- * results are returned in *dfree and *dsize, in 512 byte units
-*/
-_PUBLIC_ int sys_fsusage(const char *path, uint64_t *dfree, uint64_t *dsize)
-{
-#ifdef STAT_STATFS3_OSF1
-#define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_fsize, 
(uint64_t)512)
-       struct statfs fsd;
-
-       if (statfs (path, &fsd, sizeof (struct statfs)) != 0)
-               return -1;
-#endif /* STAT_STATFS3_OSF1 */
-
-#ifdef STAT_STATFS2_FS_DATA    /* Ultrix */
-#define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)1024, 
(uint64_t)512)
-       struct fs_data fsd;
-
-       if (statfs (path, &fsd) != 1)
-               return -1;
-
-       (*dsize) = CONVERT_BLOCKS (fsd.fd_req.btot);
-       (*dfree) = CONVERT_BLOCKS (fsd.fd_req.bfreen);
-#endif /* STAT_STATFS2_FS_DATA */
-
-#ifdef STAT_STATFS2_BSIZE      /* 4.3BSD, SunOS 4, HP-UX, AIX */
-#define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_bsize, 
(uint64_t)512)
-       struct statfs fsd;
-
-       if (statfs (path, &fsd) < 0)
-               return -1;
-
-#ifdef STATFS_TRUNCATES_BLOCK_COUNTS
-       /* In SunOS 4.1.2, 4.1.3, and 4.1.3_U1, the block counts in the
-          struct statfs are truncated to 2GB.  These conditions detect that
-          truncation, presumably without botching the 4.1.1 case, in which
-          the values are not truncated.  The correct counts are stored in
-          undocumented spare fields.  */
-       if (fsd.f_blocks == 0x1fffff && fsd.f_spare[0] > 0) {
-               fsd.f_blocks = fsd.f_spare[0];
-               fsd.f_bfree = fsd.f_spare[1];
-               fsd.f_bavail = fsd.f_spare[2];
-       }
-#endif /* STATFS_TRUNCATES_BLOCK_COUNTS */
-#endif /* STAT_STATFS2_BSIZE */
-
-
-#ifdef STAT_STATFS2_FSIZE      /* 4.4BSD */
-#define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_fsize, 
(uint64_t)512)
-
-       struct statfs fsd;
-
-       if (statfs (path, &fsd) < 0)
-               return -1;
-#endif /* STAT_STATFS2_FSIZE */
-
-#ifdef STAT_STATFS4            /* SVR3, Dynix, Irix, AIX */
-# if _AIX || defined(_CRAY)
-#  define CONVERT_BLOCKS(B) adjust_blocks ((uint64_t)(B), 
(uint64_t)fsd.f_bsize, (uint64_t)512)
-#  ifdef _CRAY
-#   define f_bavail f_bfree
-#  endif
-# else
-#  define CONVERT_BLOCKS(B) ((uint64_t)B)
-#  ifndef _SEQUENT_            /* _SEQUENT_ is DYNIX/ptx */
-#   ifndef DOLPHIN             /* DOLPHIN 3.8.alfa/7.18 has f_bavail */
-#    define f_bavail f_bfree
-#   endif
-#  endif
-# endif
-
-       struct statfs fsd;
-
-       if (statfs (path, &fsd, sizeof fsd, 0) < 0)
-               return -1;
-       /* Empirically, the block counts on most SVR3 and SVR3-derived
-          systems seem to always be in terms of 512-byte blocks,
-          no matter what value f_bsize has.  */
-
-#endif /* STAT_STATFS4 */
-
-#if defined(STAT_STATVFS)              /* SVR4 */
-#ifdef HAVE_FRSIZE
-# define CONVERT_BLOCKS(B) \
-       adjust_blocks ((uint64_t)(B), fsd.f_frsize ? (uint64_t)fsd.f_frsize : 
(uint64_t)fsd.f_bsize, (uint64_t)512)
-#else
-# define CONVERT_BLOCKS(B) \
-       adjust_blocks ((uint64_t)(B), (uint64_t)fsd.f_bsize, (uint64_t)512)
-#endif
-
-       struct statvfs fsd;
-       if (statvfs(path, &fsd) < 0) return -1;
-
-       /* f_frsize isn't guaranteed to be supported.  */
-
-#endif /* STAT_STATVFS */
-
-#ifndef CONVERT_BLOCKS
-       /* we don't have any dfree code! */
-       return -1;
-#else
-#if !defined(STAT_STATFS2_FS_DATA)
-       /* !Ultrix */
-       (*dsize) = CONVERT_BLOCKS (fsd.f_blocks);
-       (*dfree) = CONVERT_BLOCKS (fsd.f_bavail);
-#endif /* not STAT_STATFS2_FS_DATA */
-#endif
-
-       return 0;
-}
diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
index 03dee5c6137..2327ef5b9d2 100644
--- a/lib/util/samba_util.h
+++ b/lib/util/samba_util.h


-- 
Samba Shared Repository


Reply via email to