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