The branch, v4-20-stable has been updated via 74506c7ad6c VERSION: Disable GIT_SNAPSHOT for the 4.20.8 release. via 5bf75bd8ece WHATSNEW: Add release notes for Samba 4.20.8. via 02dcd201fd9 vfs_shadow_copy2: Use VFS interface to derive mount point via 351bdc71643 ctdb-utils: Fix incorrect FSF address via cabe5f89975 python:tdb_util: "samba-tool domain backup offline" hangs via 47eaf606a44 provision: always use a large transaction index cache via 848cdca0b53 netcmd: Increase the transaction_index_cache_size to 200k for schemaupgrade via 96e60f4f0ea s4:ldap_server: Consider ldapi connections to be encrypted via dda353c656c s4:ldap_server: Store whether an LDAP connection is over ldapi via 018bb7bbbc7 s4:ldap_server: Add copy of non‐privileged ops specifically for ldapi connections via 830d10c196f s4:ldap_server: Rename privileged ops to indicate they are used for ldapi via e95f6bc6d92 s4:ldap_server: Fix code spelling via 529615128be s4:ldap_server: Remove trailing whitespace via b4c8927881a mdssvc: support a few more attributes via edb719760b1 vfs_gpfs: add gpfs:clamp_invalid_times via f3d65a377ad ndr: fix coda logic around in ndr_pull_security_ace() via a74d5beb2ac pytest: add ndr packing tests for security descriptors via 787ced312a4 vfs_ceph_new:minor logging improvement via d5483429ee5 vfs_ceph_new: add smbprofile for async-ops via 6aa52e530c1 vfs_ceph_new: add profiling support via f26f0ab3aa8 vfs_ceph_new: log open-flags upon release-fh via f03df137fc5 vfs_ceph_new: improved vfs-opers logging via 6d68b61c32e vfs_ceph_new: improved mount logging via 6a09316d29c vfs_ceph_new: improve mount cache-entry add via 00d505ae38e vfs_ceph_new: improve mount cache-entry ref-count via 3d934ff47e3 vfs_ceph_new: avoid setting errno in cephmount_cache_update via 191d67baead vfs_ceph_new: refactor error-case in cephmount_mount_fs via 82312356526 vfs_ceph_new: switch to ceph_readdir_r via 3b3faed2e07 docs_xml/vfs_ceph_new: Add new proxy option via f176b0374d4 wscript_build: Do not link vfs_ceph_new against libcephfs via f74db02aa61 vfs_ceph_new: Use function pointers for API calls via 022dd9eb42e vfs_ceph_new: Pass module config to userperm helpers via 8f85064175e vfs_ceph_new: Hold a config reference in vfs_ceph_fh via 2cc98d39599 vfs_ceph_new: Call vfs_ceph_userperm_new with handle->conn via 9a91d70044b vfs_ceph_new: Populate function pointers with addresses via aac150ebadf vfs_ceph_new: Add required function pointers to config via ae13462d06f vfs_ceph_new: Dynamically open library for 'proxy' mode via 67c9da12354 vfs_ceph_new: Introduce new parametric option 'proxy' via 12137411955 vfs_ceph_new: Add a new struct to hold ceph module config via 608d2d55cac vfs_ceph_new: implement DFS hooks using libcephfs low-level APIs via 846b8c0d8c7 s4:rpc_server/lsa: let LookupSids* behave like Windows 2022/2025 via 981e6b51e6a libcli/security: let dom_sid_lookup_predefined_sid() behave like Windows 2008R2 via 1e2291530ef python:tests/dcerpc/lsa: add tests for invalid LookupSids2 combinations via a1c2206e6bf s4:pyrpc: allow connections with raise_result_exceptions=False via 3e1b15aa6f1 pidl:Python: prepare code to avoid NTSTATUS/WERROR exceptions via e7d70c5a337 pidl:Python: handle NTSTATUS/WERROR exceptions first via 37dee8f89c7 pidl:Python: separate logic to calculate the signature string via ba7115254ef pidl:Python: check PyTuple_New() return value via d1998e201af pidl:Python: initialize pointers and add 'result' at the end via b4224ede9ea pidl:Python: introduce $is_raisable_return helper variable via b301d10f6da pidl:Python: generate nicer code for PyNdrRpcMethodDef arrays via 3dda8cc57f7 s3:auth: let check_sam_security() add NETLOGON_NTLMV2_ENABLED via d5a2358e3eb s4:auth/ntlm: let authsam_check_password_internals() add NETLOGON_NTLMV2_ENABLED via a0978446adb auth: Cleanup exit code paths in kerberos_decode_pac(). via 79ca540b0a6 auth: Add missing talloc_free() in error code path. via f2514c60719 VERSION: Bump version up to Samba 4.20.8... from 3984b04d708 VERSION: Disable GIT_SNAPSHOT for the 4.20.7 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-20-stable - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: VERSION | 2 +- WHATSNEW.txt | 85 +- auth/kerberos/kerberos_pac.c | 87 +- ctdb/utils/pmda/Install | 3 +- ctdb/utils/pmda/Remove | 3 +- ctdb/utils/pmda/domain.h | 3 +- ctdb/utils/pmda/help | 3 +- ctdb/utils/pmda/pmda_ctdb.c | 3 +- ctdb/utils/pmda/pmns | 3 +- docs-xml/manpages/vfs_ceph_new.8.xml | 29 + docs-xml/manpages/vfs_gpfs.8.xml | 29 + libcli/security/util_sid.c | 5 +- librpc/ndr/ndr_sec_helper.c | 5 +- pidl/lib/Parse/Pidl/Samba4/Python.pm | 157 ++- python/samba/netcmd/domain/schemaupgrade.py | 6 +- python/samba/provision/__init__.py | 9 +- python/samba/tdb_util.py | 5 +- python/samba/tests/dcerpc/lsa.py | 226 +++- python/samba/tests/ndr/sd.py | 623 ++++++++++ selftest/tests.py | 1 + source3/auth/check_samsec.c | 2 + source3/modules/vfs_ceph_new.c | 1771 +++++++++++++++++++-------- source3/modules/vfs_gpfs.c | 43 +- source3/modules/vfs_shadow_copy2.c | 31 +- source3/modules/wscript_build | 2 +- source3/rpc_server/mdssvc/mdssvc.c | 23 +- source4/auth/ntlm/auth_sam.c | 1 + source4/ldap_server/ldap_backend.c | 2 +- source4/ldap_server/ldap_server.c | 60 +- source4/ldap_server/ldap_server.h | 9 +- source4/librpc/rpc/pyrpc.h | 1 + source4/librpc/rpc/pyrpc_util.c | 27 +- source4/librpc/rpc/pyrpc_util.h | 2 +- source4/rpc_server/lsa/lsa_lookup.c | 15 + 34 files changed, 2598 insertions(+), 678 deletions(-) create mode 100644 python/samba/tests/ndr/sd.py Changeset truncated at 500 lines: diff --git a/VERSION b/VERSION index 144555f6342..0607444654a 100644 --- a/VERSION +++ b/VERSION @@ -27,7 +27,7 @@ SAMBA_COPYRIGHT_STRING="Copyright Andrew Tridgell and the Samba Team 1992-2024" ######################################################## SAMBA_VERSION_MAJOR=4 SAMBA_VERSION_MINOR=20 -SAMBA_VERSION_RELEASE=7 +SAMBA_VERSION_RELEASE=8 ######################################################## # If a official release has a serious bug # diff --git a/WHATSNEW.txt b/WHATSNEW.txt index 9f8326ef28b..8a36ecc317f 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,3 +1,85 @@ + ============================== + Release Notes for Samba 4.20.8 + March 25, 2025 + ============================== + + +This is the latest stable release of the Samba 4.20 release series. + + +Changes since 4.20.7 +-------------------- + +o Jeremy Allison <j...@samba.org> + * BUG 15782: winbindd shows memleak in kerberos_decode_pac. + +o Douglas Bagnall <douglas.bagn...@catalyst.net.nz> + * BUG 15738: Creation of GPOs applicable to more than one group is impossible + with Samba 4.20.0 and later. + * BUG 15795: ldb index cache is too small on known large transactions + (schemaupgrade, provision). + +o Ralph Boehme <s...@samba.org> + * BUG 15151: vfs_gpfs silently garbles timestamps > year 2106. + * BUG 15796: Spotlight search results don't show file size and creation date. + +o Guenther Deschner <g...@samba.org> + * BUG 15703: General improvements for vfs_ceph_new module. + +o Andréas Leroux <aler...@tranquil.it> + * BUG 15795: ldb index cache is too small on known large transactions + (schemaupgrade, provision). + +o Stefan Metzmacher <me...@samba.org> + * BUG 14213: Windows Explorer crashes on S-1-22-* Unix-SIDs when accessing + security tab. + * BUG 15783: NETLOGON_NTLMV2_ENABLED is missing in the SamLogon* user_flags + field. + +o Anoop C S <anoo...@samba.org> + * BUG 15703: General improvements for vfs_ceph_new module. + * BUG 15797: Unable to connect to CephFS subvolume shares with + vfs_shadow_copy2. + +o Martin Schwenke <mschwe...@ddn.com> + * BUG 15820: Incorrect FSF address in ctdb pcp scripts. + +o Shachar Sharon <ssha...@redhat.com> + * BUG 15703: General improvements for vfs_ceph_new module. + +o Shweta Sodani <ssod...@redhat.com> + * BUG 15703: General improvements for vfs_ceph_new module. + +o Jo Sutton <josut...@catalyst.net.nz> + * BUG 15634: unicodePwd cannot be modified over ldapi. + +o Andrea Venturoli <m...@netfence.it> + * BUG 15804: "samba-tool domain backup offline" hangs. + + +####################################### +Reporting bugs & Development Discussion +####################################### + +Please discuss this release on the samba-technical mailing list or by +joining the #samba-technical:matrix.org matrix room, or +#samba-technical IRC channel on irc.libera.chat. + +If you do report problems then please try to send high quality +feedback. If you don't provide vital information to help us track down +the problem then you will probably be ignored. All bug reports should +be filed under the Samba 4.1 and newer product in the project's Bugzilla +database (https://bugzilla.samba.org/). + + +====================================================================== +== Our Code, Our Bugs, Our Responsibility. +== The Samba Team +====================================================================== + + +Release notes for older releases follow: +---------------------------------------- ============================== Release Notes for Samba 4.20.7 January 21, 2025 @@ -65,8 +147,7 @@ database (https://bugzilla.samba.org/). ====================================================================== -Release notes for older releases follow: ----------------------------------------- +---------------------------------------------------------------------- ============================== Release Notes for Samba 4.20.6 November 19, 2024 diff --git a/auth/kerberos/kerberos_pac.c b/auth/kerberos/kerberos_pac.c index b6272ac15eb..4c61cfe838f 100644 --- a/auth/kerberos/kerberos_pac.c +++ b/auth/kerberos/kerberos_pac.c @@ -137,7 +137,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, time_t tgs_authtime, struct PAC_DATA **pac_data_out) { - NTSTATUS status; + NTSTATUS status = NT_STATUS_NO_MEMORY; enum ndr_err_code ndr_err; krb5_error_code ret; DATA_BLOB modified_pac_blob; @@ -173,8 +173,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, kdc_sig_wipe = talloc(tmp_ctx, struct PAC_SIGNATURE_DATA); srv_sig_wipe = talloc(tmp_ctx, struct PAC_SIGNATURE_DATA); if (!pac_data_raw || !pac_data || !kdc_sig_wipe || !srv_sig_wipe) { - talloc_free(tmp_ctx); - return NT_STATUS_NO_MEMORY; + status = NT_STATUS_NO_MEMORY; + goto out; } ndr_err = ndr_pull_struct_blob(&pac_data_blob, pac_data, pac_data, @@ -183,15 +183,14 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't parse the PAC: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } if (pac_data->num_buffers < 4) { /* we need logon_info, service_key and kdc_key */ DEBUG(0,("less than 4 PAC buffers\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } ndr_err = ndr_pull_struct_blob( @@ -201,15 +200,14 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't parse the PAC: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } if (pac_data_raw->num_buffers < 4) { /* we need logon_info, service_key and kdc_key */ DEBUG(0,("less than 4 PAC buffers\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (pac_data->num_buffers != pac_data_raw->num_buffers) { @@ -217,8 +215,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, DEBUG(0, ("misparse! PAC_DATA has %d buffers while " "PAC_DATA_RAW has %d\n", pac_data->num_buffers, pac_data_raw->num_buffers)); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } for (i=0; i < pac_data->num_buffers; i++) { @@ -229,8 +227,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, DEBUG(0, ("misparse! PAC_DATA buffer %d has type " "%d while PAC_DATA_RAW has %d\n", i, data_buf->type, raw_buf->type)); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } switch (data_buf->type) { case PAC_TYPE_LOGON_INFO: @@ -263,26 +261,26 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, if (!logon_info) { DEBUG(0,("PAC no logon_info\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (!logon_name) { DEBUG(0,("PAC no logon_name\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (!srv_sig_ptr || !srv_sig_blob) { DEBUG(0,("PAC no srv_key\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (!kdc_sig_ptr || !kdc_sig_blob) { DEBUG(0,("PAC no kdc_key\n")); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } /* Find and zero out the signatures, @@ -297,8 +295,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't parse the KDC signature: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } ndr_err = ndr_pull_struct_blob( @@ -308,8 +305,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't parse the SRV signature: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } /* Now zero the decoded structure */ @@ -326,8 +322,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't repack the KDC signature: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } ndr_err = ndr_push_struct_blob( srv_sig_blob, pac_data_raw, srv_sig_wipe, @@ -336,8 +331,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't repack the SRV signature: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } /* push out the whole structure, but now with zero'ed signatures */ @@ -348,8 +342,7 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, status = ndr_map_error2ntstatus(ndr_err); DEBUG(0,("can't repack the RAW PAC: %s\n", nt_errstr(status))); - talloc_free(tmp_ctx); - return status; + goto out; } if (service_keyblock) { @@ -360,7 +353,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, if (ret) { DEBUG(5, ("PAC Decode: Failed to verify the service " "signature: %s\n", error_message(ret))); - return NT_STATUS_ACCESS_DENIED; + status = NT_STATUS_ACCESS_DENIED; + goto out; } if (krbtgt_keyblock) { @@ -370,8 +364,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, if (ret) { DEBUG(1, ("PAC Decode: Failed to verify the KDC signature: %s\n", smb_get_krb5_error_message(context, ret, tmp_ctx))); - talloc_free(tmp_ctx); - return NT_STATUS_ACCESS_DENIED; + status = NT_STATUS_ACCESS_DENIED; + goto out; } } } @@ -387,8 +381,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, nt_time_string(tmp_ctx, logon_name->logon_time))); DEBUG(2, ("PAC Decode: Ticket: %s\n", nt_time_string(tmp_ctx, tgs_authtime_nttime))); - talloc_free(tmp_ctx); - return NT_STATUS_ACCESS_DENIED; + status = NT_STATUS_ACCESS_DENIED; + goto out; } } @@ -400,8 +394,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, if (ret) { DEBUG(2, ("Could not unparse name from ticket to match with name from PAC: [%s]:%s\n", logon_name->account_name, error_message(ret))); - talloc_free(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } bool_ret = strcmp(client_principal_string, logon_name->account_name) == 0; @@ -412,8 +406,8 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, logon_name->account_name, client_principal_string)); SAFE_FREE(client_principal_string); - talloc_free(tmp_ctx); - return NT_STATUS_ACCESS_DENIED; + status = NT_STATUS_ACCESS_DENIED; + goto out; } SAFE_FREE(client_principal_string); @@ -434,10 +428,15 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx, } if (pac_data_out) { - *pac_data_out = talloc_steal(mem_ctx, pac_data); + *pac_data_out = talloc_move(mem_ctx, &pac_data); } - return NT_STATUS_OK; + status = NT_STATUS_OK; + + out: + + TALLOC_FREE(tmp_ctx); + return status; } NTSTATUS kerberos_pac_logon_info(TALLOC_CTX *mem_ctx, diff --git a/ctdb/utils/pmda/Install b/ctdb/utils/pmda/Install index a56a63506a8..bd12b7486cf 100644 --- a/ctdb/utils/pmda/Install +++ b/ctdb/utils/pmda/Install @@ -13,8 +13,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # Install the ctdb PMDA and/or PMNS # diff --git a/ctdb/utils/pmda/Remove b/ctdb/utils/pmda/Remove index 7d1c509e50e..8bf0fe76e15 100644 --- a/ctdb/utils/pmda/Remove +++ b/ctdb/utils/pmda/Remove @@ -13,8 +13,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # Remove the ctdb PMDA # diff --git a/ctdb/utils/pmda/domain.h b/ctdb/utils/pmda/domain.h index 0bed7fef599..b00d32d90dc 100644 --- a/ctdb/utils/pmda/domain.h +++ b/ctdb/utils/pmda/domain.h @@ -13,7 +13,6 @@ * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see <https://www.gnu.org/licenses/>. */ #define CTDB 110 diff --git a/ctdb/utils/pmda/help b/ctdb/utils/pmda/help index 0e9984eab3a..26b5385b0da 100644 --- a/ctdb/utils/pmda/help +++ b/ctdb/utils/pmda/help @@ -12,8 +12,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # ctdb PMDA help file in the ASCII format # diff --git a/ctdb/utils/pmda/pmda_ctdb.c b/ctdb/utils/pmda/pmda_ctdb.c index 4f7933de9c5..7ac8a3b38d1 100644 --- a/ctdb/utils/pmda/pmda_ctdb.c +++ b/ctdb/utils/pmda/pmda_ctdb.c @@ -15,8 +15,7 @@ * for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * with this program; if not, see <https://www.gnu.org/licenses/>. */ #include "replace.h" diff --git a/ctdb/utils/pmda/pmns b/ctdb/utils/pmda/pmns index dc7e3ac2bfa..c9f6644d52f 100644 --- a/ctdb/utils/pmda/pmns +++ b/ctdb/utils/pmda/pmns @@ -15,8 +15,7 @@ * for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * with this program; if not, see <https://www.gnu.org/licenses/>. */ ctdb { diff --git a/docs-xml/manpages/vfs_ceph_new.8.xml b/docs-xml/manpages/vfs_ceph_new.8.xml index b0640a591a5..eaf5b66cceb 100644 --- a/docs-xml/manpages/vfs_ceph_new.8.xml +++ b/docs-xml/manpages/vfs_ceph_new.8.xml @@ -152,6 +152,35 @@ </listitem> </varlistentry> + <varlistentry> + <term>ceph_new:proxy = [ yes | no | auto ]</term> + <listitem> + <para> + Allows one to indicate use of the libcephfs proxy library + for optimized resource utilization, allowing more simultaneous + client connections. Prerequisites include the presence of + <emphasis>libcephfs_proxy.so.X</emphasis> shared library file + under loadable locations for dynamic linker and an active(running) + <emphasis>libcephfsd</emphasis> daemon. + </para> + + <itemizedlist> + <listitem><para><constant>no</constant> (default) - Do + not use the proxy library but regular connection through + <emphasis>libcephfs.so.X</emphasis>.</para></listitem> + + <listitem><para><constant>yes</constant> - Always use + the proxy library and fail the client connection request + if prerequisites are unmet.</para></listitem> + + <listitem><para><constant>auto</constant> - Attempt to + use the proxy library but fall back to the regular cephfs + connection if prerequisites are unmet.</para></listitem> + + </itemizedlist> + + </listitem> + </varlistentry> </variablelist> </refsect1> diff --git a/docs-xml/manpages/vfs_gpfs.8.xml b/docs-xml/manpages/vfs_gpfs.8.xml index 29f2ac453f0..cee12cd3f94 100644 --- a/docs-xml/manpages/vfs_gpfs.8.xml +++ b/docs-xml/manpages/vfs_gpfs.8.xml @@ -316,6 +316,35 @@ </varlistentry> + <varlistentry> + <term>gpfs:clamp_invalid_times = [ yes | no ]</term> + <listitem> + <para> + GPFS stores timestamps using 32-bit unsigned integers for the + seconds component. When using gpfs:settimes = yes, this module + validates times that clients attempt to set are within the + supported GPFS range between 0 and UINT32_MAX. If a timestamp is + outside of this range, the client request is rejected. To cope + with clients setting eg temporary timestamps outside the valid + range, this parameter can be used to clamp the client timestamp + to the allowed range. Times before Thu Jan 1 12:00:00 AM UTC + 1970 (the UNIX epock) are then set to Thu Jan 1 12:00:00 AM UTC + 1970, times after Sun Feb 7 06:28:15 AM UTC 2106 will be set to + Sun Feb 7 06:28:15 AM UTC 2106. -- Samba Shared Repository