The branch, master has been updated
       via  2af8904b3bd smbd: Simplify smb2_parse_file_rename_information()
       via  5312ba31083 smbd: Simplify smb2_parse_file_rename_information()
       via  006c7440c4c smbd: Remove "dst_original_lcomp" from 
smb2_parse_file_rename_information()
       via  034126820e3 vfs: Remove streams_depot_renameat()
       via  ba5917dc2f8 vfs: Remove streams_xattr_renameat()
       via  e0610a0787c smbd: Remove "dst_original_lcomp" from 
smb2_parse_file_rename_information()
       via  3cd3aa5f151 smbd: Remove unused parameters from rename_internals()
       via  f6ab272f680 smbd: Remove an unnecessary return;
       via  ca21a677ff1 smbd: Remove unused parameters from 
rename_internals_fsp()
       via  bb130f32c9f smbd: Rewrite rename_internals_fsp()
       via  f0a4e879daa vfs: Add streams_depot implementation of rename_stream()
       via  2c3535dc2ad vfs: Add streams_xattr implementation of rename_stream()
       via  1a8d7c3dd60 vfs: Add SMB_VFS_RENAME_STREAM
       via  a41218834f0 vfs_streams_xattr: Return whether a stream name is 
::$DATA
       via  cd6ab021754 smbd: Slightly simplify rename_internals
       via  4bb1161af1c smbd: Pass fsp instead of filename for parent to 
open_directory()
       via  d85cbf882c4 smbd: Pass fsp instead of filename for parent to 
open_file_ntcreate()
       via  3c700c518ae smbd: Pass fsp instead of filename for parent to 
possibly_set_archive()
       via  c7668719adf smbd: Pass fsp instead of filename for parent to 
mkdir_internals()
       via  17a23cd6b27 smbd: Slightly simplify mkdir_internal()
       via  97b6efc398b smbd: Pass fsp instead of filename for parent to 
file_set_dosmode
       via  779aed4ac0e smbd: Move a variable declaration closer to its use
       via  0c5fba7f4af smbd: Simplify rename_internals_fsp()
       via  46d0c6ed00e smbd: Pass src_dirfsp, src_relname and raw newname to 
rename_internals_fsp()
       via  e761e842f43 smbd: Fix indentation of rename_internals[_fsp] params
       via  01f268bdfbe smbd: Return newname from 
smb2_parse_file_rename_information()
       via  e02293b1a49 smbd: Simplify hardlink_internals()
       via  1823c4395ff smbd: Consolidate [smb|smb2]_file_link_information code
       via  bed11dc99df smbd: Use fsp_is_alternate_stream()
       via  0e86378d407 smbd: Remove a temp variable used only once
       via  97608924c15 smbd: Remove a few unnecessary NULL checks
       via  611788e2ac1 smbd: Align [smb|smb2]_file_link_information code
       via  a7810d2317e smbd: Reduce indentation in 
smb2_parse_file_rename_information()
       via  86b0a2894ed smbd: Simplify hardlink_internals()
       via  cbbf40bb5bf smbd: Pass "dirfsp" and the new relname to 
smb_set_file_unix_hlink()
       via  82fc3d29cff smbd: Modernize DEBUGs
       via  76796180cf3 vfs: Rename "srcfsp"->"src_dirfsp" and 
"dstfsp"->"dst_dirfsp"
       via  46bc039d98d smbd: Slightly simplify smbd_do_qfilepathinfo()
       via  70aab08c65b smbd: Use fsp_str_dbg() in DEBUGs
       via  da962c56be1 smbd: Move a variable declaration closer to its use
       via  a35160093a2 smbd: Fix indentation in reply_ntrename()
       via  9fd3c0aa0ad smbd: Fix a copy&paste error in a comment
       via  396e278e223 smbd: Slightly simplify reply_ntrename()
       via  5fa43440ebd vfs: Implement larger streams in multiple xattrs
       via  553190ae5a8 vfs: Fix a few signed/unsigned warnings
       via  0dc7816fab6 vfs: Add the streams_xattr:ext_prefix parameter
       via  b709da70108 vfs: Protect against an empty stream prefix
       via  bcced20dd4e vfs_streams: Add "streams_xattr:max xattrs per stream" 
parameter
       via  5b494330844 vfs: Pass streams_xattr_config to fremovexattr_multi()
       via  5643f29de3d vfs: Pass streams_xattr_config to fgetxattr_multi()
       via  6aaba27a200 vfs: Pass streams_xattr_config to 
streams_xattr_get_ea_value_fsp()
       via  7eab7446178 vfs: Pass streams_xattr_config to get_xattr_size_fsp()
       via  a19fada15cb vfs: Pass streams_xattr_config to fsetxattr_multi()
       via  3f8ab41a152 vfs: Pass xattr functions through helpers in 
streams_xattr
       via  25251260544 vfs: Simplify streams_xattr_get_ea_value_fsp()
       via  2d10a8845cd vfs: Simplify streams_xattr_get_ea_value_fsp()
       via  fcc572046c6 vfs: Make streams_xattr_get_ea_value_fsp fill a struct 
of its own
       via  322fa876de6 vfs: Make a copy of get_ea_value_fsp() in streams_xattr
       via  5402a750403 vfs: Do an early TALLOC_FREE in streams_xattr_openat()
       via  07fa17d0875 smbd: Simplify samba_private_attr_name()
       via  ac88296d597 test: Fix fruit test for local netatalk interop
       via  855b0771b07 test: Fix shadow copy streams xattr test
      from  c00de32585b mdssvc: add support for parsing date ranges

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


- Log -----------------------------------------------------------------
commit 2af8904b3bd9f9b6854b7004fb264dd5707009d7
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 26 10:40:45 2025 +0200

    smbd: Simplify smb2_parse_file_rename_information()
    
    We don't really need "fsp" and "smb_fname_src" arguments anymore
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>
    
    Autobuild-User(master): Ralph Böhme <[email protected]>
    Autobuild-Date(master): Tue Oct 21 18:35:59 UTC 2025 on atb-devel-224

commit 5312ba310838e8ed3125a081e0afc0758ccd7879
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 26 10:25:42 2025 +0200

    smbd: Simplify smb2_parse_file_rename_information()
    
    The caller in smb2_file_rename_information() does not need the
    dst_dirfsp, factor out the filename_convert_dirfsp() code.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 006c7440c4c383f72547050c488886918c8ff337
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 25 08:55:34 2025 +0200

    smbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()
    
    Nobody uses it anymore
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 034126820e3f968c16d7805899054fb4fc86fd76
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 15:48:58 2025 +0200

    vfs: Remove streams_depot_renameat()
    
    Not used anymore except for passing on to _NEXT_
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit ba5917dc2f82038ace52bddc8dc0311ce8f16465
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 15:47:32 2025 +0200

    vfs: Remove streams_xattr_renameat()
    
    Not used anymore except for passing on to _NEXT_
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit e0610a0787ccd773a7e416500209ac033d5348d1
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 25 08:55:34 2025 +0200

    smbd: Remove "dst_original_lcomp" from smb2_parse_file_rename_information()
    
    Nobody uses it anymore
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 3cd3aa5f1516fe1615306c3f634d58a150e403c3
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 15:12:17 2025 +0200

    smbd: Remove unused parameters from rename_internals()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit f6ab272f6803b7d604504d28835f1f3760fe439a
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 19 17:17:06 2025 -0700

    smbd: Remove an unnecessary return;
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit ca21a677ff1f8fa96136ef475c6a8287cc72da6f
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 14:58:49 2025 +0200

    smbd: Remove unused parameters from rename_internals_fsp()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit bb130f32c9fdbb02a4e99d23953d090c3e992d0a
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 14:49:21 2025 +0200

    smbd: Rewrite rename_internals_fsp()
    
    With SMB_VFS_RENAME_STREAM and the src parent fsp and src relname
    available, we can save a lot of string handling in
    rename_internals_fsp(). Subsequent patches will remove a lot of code
    that's no longer used after this patch.
    
    Better look at the result than the patch for review.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit f0a4e879daa3a8002905fb5d161372d3b27cd42f
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 22 17:05:08 2025 +0200

    vfs: Add streams_depot implementation of rename_stream()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 2c3535dc2ad15b94bc5f33aa42f0a81ad9ff9201
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 19 11:02:25 2025 -0700

    vfs: Add streams_xattr implementation of rename_stream()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 1a8d7c3dd60040a9aed646f73a353712a3153589
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 22 15:55:57 2025 +0200

    vfs: Add SMB_VFS_RENAME_STREAM
    
    [MS-FSA] 2.1.5.15.12.1 Algorithm for Performing Stream Rename
    
    is simpler and diffent enough from renaming a file or directory that I
    believe a separate VFS operation is justified instead of tunneling it
    through the renameat call. For example it's only possible to rename
    streams within a file, so only one stream open fsp and a newname which
    is guaranteed to be a stream name is necessary.
    
    Add stub implementations to our streams modules, to be filled later.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    
    vfs_streams_xattr: rename_streams
    Reviewed-by: Ralph Boehme <[email protected]>

commit a41218834f02651f0f892b0ab337461a948ade7c
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 24 14:04:49 2025 +0200

    vfs_streams_xattr: Return whether a stream name is ::$DATA
    
    Not trivial to find from the converted name due to the
    streams_xattr:store_stream_type config option. To be used in the
    stream_rename operation.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit cd6ab021754e32cd1695d56c1e74c5131013a0c8
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 21 14:18:47 2025 +0200

    smbd: Slightly simplify rename_internals
    
    This is what "||" is for...
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 4bb1161af1c2ed4fc3190429b276e79325069430
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 07:03:20 2025 -0700

    smbd: Pass fsp instead of filename for parent to open_directory()
    
    Everybody referenced parent_dir_fname->fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit d85cbf882c4e04390e2163fdbcaa04682a6d310f
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 07:00:36 2025 -0700

    smbd: Pass fsp instead of filename for parent to open_file_ntcreate()
    
    Everybody referenced parent_dir_fname->fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 3c700c518ae4ff4cdc7a877063b81ab58c18616a
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 06:57:42 2025 -0700

    smbd: Pass fsp instead of filename for parent to possibly_set_archive()
    
    Lift the ->fsp dereference up one level
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit c7668719adf7c01a5712c9efdfa14c4a6077c5ef
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 06:55:57 2025 -0700

    smbd: Pass fsp instead of filename for parent to mkdir_internals()
    
    parent_dir_fname->fsp was referenced almost everywhere
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 17a23cd6b275ea3a61f4ff40b40fcebf8555bc34
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 06:49:49 2025 -0700

    smbd: Slightly simplify mkdir_internal()
    
    Save a few lines by moving the NULL check out of the if-branches. Swap
    branches to avoid a ! in the condition, makes it easier to read for me.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 97b6efc398b863316ec9ee704a94a9dad4409c4d
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 06:46:51 2025 -0700

    smbd: Pass fsp instead of filename for parent to file_set_dosmode
    
    Avoids a call to PARENT_PATHNAME in copy_internals()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 779aed4ac0e9b608a18d3bff2a664bbf2e8c2a9a
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 06:05:52 2025 -0700

    smbd: Move a variable declaration closer to its use
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 0c5fba7f4afb7a750bb165299618daecb5e6cc74
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 18 12:50:57 2025 -0700

    smbd: Simplify rename_internals_fsp()
    
    Use a new talloc_stackframe to simplify cleanup. I hope Coverity gets
    this.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 46d0c6ed00eb3801d9e34e6c0db5afb89e639a47
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 15:51:05 2025 -0700

    smbd: Pass src_dirfsp, src_relname and raw newname to rename_internals_fsp()
    
    Will make way for some simplification soon
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit e761e842f436529d9788c19a54205c841f8c62ea
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 13:46:52 2025 +0200

    smbd: Fix indentation of rename_internals[_fsp] params
    
    Next patches add params
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 01f268bdfbebbad1172b6de17cfca1e0097a047b
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 17 15:46:37 2025 -0700

    smbd: Return newname from smb2_parse_file_rename_information()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit e02293b1a49d4efea9662f6e8cb667f8c14e9802
Author: Volker Lendecke <[email protected]>
Date:   Tue Sep 16 13:15:39 2025 -0700

    smbd: Simplify hardlink_internals()
    
    Avoid calling parent_pathref() in hardlink_internals. All but one
    callers have the required information anyway. Unfortunately the one
    that does not have it is the SMB2 one. So for SMB2+ this is not a real
    optimization, but in some distant future we might have a dirfsp
    attached to every fsp, so this might at some point also solve itself.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 1823c4395ff1fb6b22372db99214ae2a90a74d09
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 15 11:50:00 2025 -0700

    smbd: Consolidate [smb|smb2]_file_link_information code
    
    Those two functions were the same except for pulling the dst name.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit bed11dc99df098704313a1dc15e9d569c1f44ece
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 11:54:35 2025 +0200

    smbd: Use fsp_is_alternate_stream()
    
    This is more descriptive than just checking fsp->base_fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 0e86378d407a108c331bd28db3394f1dcac6e23d
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 11:50:24 2025 +0200

    smbd: Remove a temp variable used only once
    
    We use talloc_tos() as function argument in a lot of places already.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 97608924c15d6900d49881e18e8cd4a78ecdbf58
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 11:47:42 2025 +0200

    smbd: Remove a few unnecessary NULL checks
    
    These functions are only called from smbd_do_setfilepathinfo() which
    has checked with SMB_ASSERT(fsp != NULL).
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 611788e2ac1deb4e77f9f5827edd45548231d1c0
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 15 11:35:46 2025 -0700

    smbd: Align [smb|smb2]_file_link_information code
    
    The next patch will merge them into one function. Make it obvious in a 
separate
    patch that they are the same except for parsing the input buffer.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit a7810d2317ee5962499d4159d7dbe53a4ee444a5
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 22:34:00 2025 +0200

    smbd: Reduce indentation in smb2_parse_file_rename_information()
    
    Avoid an "else"
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 86b0a2894edc315c4676d1b7e72dd45fc1d89312
Author: Volker Lendecke <[email protected]>
Date:   Mon Sep 15 06:04:06 2025 -0700

    smbd: Simplify hardlink_internals()
    
    All callers have easy access to the "new" parent dirfsp and the new
    lcomp. Use those to avoid a call to parent_pathref() in
    hardlink_internals().
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit cbbf40bb5bf5de97cda6f3bac4c60519a8be1880
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 20:10:58 2025 -0700

    smbd: Pass "dirfsp" and the new relname to smb_set_file_unix_hlink()
    
    Will be passed on next
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 82fc3d29cffddbe776ff0723d4753b30b4838897
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 17:04:03 2025 -0700

    smbd: Modernize DEBUGs
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 76796180cf3af3252db2c29d0e95282a498a8527
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 16:06:57 2025 +0200

    vfs: Rename "srcfsp"->"src_dirfsp" and "dstfsp"->"dst_dirfsp"
    
    Do this in linkat() and renameat() routines. Some modules already had
    this, unify on our current convention to name directory fsps.
    
    Looks much larger than it is, most is coming from "git clang-format".
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 46bc039d98df812232e13741a36af575731b221f
Author: Volker Lendecke <[email protected]>
Date:   Sat Sep 13 12:20:34 2025 +0200

    smbd: Slightly simplify smbd_do_qfilepathinfo()
    
    Use metadata_fsp() instead of explicitly checking fsp->base_fsp
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 70aab08c65b871d17fb4d1895bc92b39f7d82bc5
Author: Volker Lendecke <[email protected]>
Date:   Fri Sep 12 19:16:28 2025 +0200

    smbd: Use fsp_str_dbg() in DEBUGs
    
    This removes "git grep fsp_name->base_name" references.
    
    Referencing fsp_name->base_name is potentially racy and affected by
    
    https://bugzilla.samba.org/show_bug.cgi?id=15909
    
    This removes some obvious git grep lines, still leaving far too many...
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit da962c56be1245d5099e05d49255a0b38d78a50f
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 10:48:08 2025 -0700

    smbd: Move a variable declaration closer to its use
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit a35160093a2c5d1603cb2d97325a9786941e7635
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 11:04:46 2025 -0700

    smbd: Fix indentation in reply_ntrename()
    
    Next patch will modify this section, don't confuse
    clang-format. Review with git show -w.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 9fd3c0aa0ad38e20573135de5f3b8cdc7dc6069f
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 10:26:13 2025 -0700

    smbd: Fix a copy&paste error in a comment
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 396e278e2230dd8502ae5186b7623a91dfcdcbed
Author: Volker Lendecke <[email protected]>
Date:   Sun Sep 14 10:23:38 2025 -0700

    smbd: Slightly simplify reply_ntrename()
    
    We call filename_convert_dirfsp() on the old name. Use the parsing
    done there, we don't need to scan for a ":" in reply_ntrename() where
    filename_convert_dirfsp() already does it.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 5fa43440ebd396904fbaa3c8f5d8eb554eaed183
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 17:28:26 2025 +0200

    vfs: Implement larger streams in multiple xattrs
    
    See the comment at the top of this patch for a description of the data
    format.
    
    The lowerlevel xattr_multi routines now take the raw stream name
    instead of the xattr name because they have to build up the real xattr
    name attached to the file themselves.
    
    The patch is a bit larger than I would like it, but the mechanics in
    the _multi() routines don't make sense in isolation, and the rest is
    mostly handling the raw_stream_name instead of the xattr_name.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 553190ae5a83aa0e8d57a0127253b02c5ca2b8dc
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 17:07:35 2025 +0200

    vfs: Fix a few signed/unsigned warnings
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 0dc7816fab6d64c6291e7d28f2ed9c992ad5d9e2
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 16:56:39 2025 +0200

    vfs: Add the streams_xattr:ext_prefix parameter
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit b709da701080552b9a7f288c34f66ace219e0c04
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 16:48:07 2025 +0200

    vfs: Protect against an empty stream prefix
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit bcced20dd4e0f42754501d05474843d8c017a563
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 13:48:40 2025 +0200

    vfs_streams: Add "streams_xattr:max xattrs per stream" parameter
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 5b494330844bffa97fe968d85b2b39469542c2cd
Author: Volker Lendecke <[email protected]>
Date:   Tue Sep 2 16:27:41 2025 +0200

    vfs: Pass streams_xattr_config to fremovexattr_multi()
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 5643f29de3d755657825908ff10c98b7de8f1472
Author: Volker Lendecke <[email protected]>
Date:   Tue Sep 2 12:40:46 2025 +0200

    vfs: Pass streams_xattr_config to fgetxattr_multi()
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 6aaba27a200ba9a2e6afe7e0111aebe4e64bda3d
Author: Volker Lendecke <[email protected]>
Date:   Tue Sep 2 12:39:54 2025 +0200

    vfs: Pass streams_xattr_config to streams_xattr_get_ea_value_fsp()
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 7eab744617871ce6a1c0dbd1f99f361f905e7e0e
Author: Volker Lendecke <[email protected]>
Date:   Tue Sep 2 12:35:04 2025 +0200

    vfs: Pass streams_xattr_config to get_xattr_size_fsp()
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit a19fada15cb056919d796f190cf97183db942c4b
Author: Volker Lendecke <[email protected]>
Date:   Fri Aug 29 17:01:57 2025 +0200

    vfs: Pass streams_xattr_config to fsetxattr_multi()
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 3f8ab41a1526e95d351af824cf8e91510349b354
Author: Volker Lendecke <[email protected]>
Date:   Thu Aug 28 16:43:22 2025 +0200

    vfs: Pass xattr functions through helpers in streams_xattr
    
    To be used in later patches
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 25251260544a797c2ac4ea1e23a80d9cd59ac34a
Author: Volker Lendecke <[email protected]>
Date:   Fri Aug 29 16:14:51 2025 +0200

    vfs: Simplify streams_xattr_get_ea_value_fsp()
    
    We only need the value, no need for struct streams_xattr_ea just
    wrapping a blob.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 2d10a8845cd41625c6ea326610d45fd93f6401c2
Author: Volker Lendecke <[email protected]>
Date:   Thu Aug 28 14:51:22 2025 +0200

    vfs: Simplify streams_xattr_get_ea_value_fsp()
    
    We don't care about flags and names in streams_xattr
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit fcc572046c66160bf2433e8382e975d517ce6608
Author: Volker Lendecke <[email protected]>
Date:   Thu Aug 28 14:50:23 2025 +0200

    vfs: Make streams_xattr_get_ea_value_fsp fill a struct of its own
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 322fa876de6f92ba7655d212543e525a2125a848
Author: Volker Lendecke <[email protected]>
Date:   Thu Aug 28 14:33:06 2025 +0200

    vfs: Make a copy of get_ea_value_fsp() in streams_xattr
    
    We'll have to modify it to pass the FGETXATTR call through a helper
    function for the vfs_streams_xattr case next.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 5402a750403a768e320bcf2286d68f8619df1646
Author: Volker Lendecke <[email protected]>
Date:   Fri Aug 29 15:57:39 2025 +0200

    vfs: Do an early TALLOC_FREE in streams_xattr_openat()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 07fa17d08755cae0ca6390352fca9d55aca0c0dd
Author: Volker Lendecke <[email protected]>
Date:   Wed Aug 27 16:40:54 2025 +0200

    smbd: Simplify samba_private_attr_name()
    
    We have strnequal for this
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit ac88296d597d2fc39f7fa6f6be4271d40cd50562
Author: Volker Lendecke <[email protected]>
Date:   Thu Sep 4 09:45:32 2025 +0200

    test: Fix fruit test for local netatalk interop
    
    streams_xattr always appends a '\0'. We'll start to add meaning to
    that byte and check it soon, so make the hand-crafted stream follow
    that convention.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 855b0771b07ee4f52a96f90edc6f79353731bb1d
Author: Volker Lendecke <[email protected]>
Date:   Wed Sep 3 11:46:49 2025 +0200

    test: Fix shadow copy streams xattr test
    
    streams_xattr always appends a '\0'. We'll start to add meaning to
    that byte and check it soon, so make the hand-crafted stream follow
    that convention
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

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

Summary of changes:
 docs-xml/manpages/vfs_streams_xattr.8.xml        |  35 +
 examples/VFS/skel_opaque.c                       |  10 +
 examples/VFS/skel_transparent.c                  |  12 +
 source3/include/smbprofile.h                     |   1 +
 source3/include/vfs.h                            |  14 +
 source3/include/vfs_macros.h                     |  14 +
 source3/lib/adouble.c                            |  13 +-
 source3/modules/nfs4_acls.c                      |   8 +-
 source3/modules/vfs_audit.c                      |  28 +-
 source3/modules/vfs_cap.c                        |  44 +-
 source3/modules/vfs_catia.c                      |  20 +-
 source3/modules/vfs_ceph.c                       |  36 +-
 source3/modules/vfs_ceph_new.c                   | 122 +--
 source3/modules/vfs_ceph_snapshots.c             |  37 +-
 source3/modules/vfs_crossrename.c                |  18 +-
 source3/modules/vfs_default.c                    |  41 +-
 source3/modules/vfs_extd_audit.c                 |  24 +-
 source3/modules/vfs_fruit.c                      |  32 +-
 source3/modules/vfs_full_audit.c                 |  84 +-
 source3/modules/vfs_glusterfs.c                  |  36 +-
 source3/modules/vfs_gpfs.c                       |   9 +-
 source3/modules/vfs_media_harmony.c              |  66 +-
 source3/modules/vfs_not_implemented.c            |  25 +-
 source3/modules/vfs_shadow_copy2.c               |  40 +-
 source3/modules/vfs_snapper.c                    |  40 +-
 source3/modules/vfs_streams_depot.c              | 117 +--
 source3/modules/vfs_streams_xattr.c              | 965 ++++++++++++++++++-----
 source3/modules/vfs_syncops.c                    |  48 +-
 source3/modules/vfs_time_audit.c                 |  80 +-
 source3/modules/vfs_unityed_media.c              |  65 +-
 source3/modules/vfs_virusfilter.c                |  27 +-
 source3/modules/vfs_vxfs.c                       |   6 +-
 source3/modules/vfs_worm.c                       |  12 +-
 source3/script/tests/test_shadow_copy_torture.sh |   2 +-
 source3/smbd/dir.c                               |   2 +-
 source3/smbd/dosmode.c                           |   8 +-
 source3/smbd/files.c                             |   6 +-
 source3/smbd/notify.c                            |   7 +-
 source3/smbd/open.c                              | 138 ++--
 source3/smbd/proto.h                             |  56 +-
 source3/smbd/smb1_nttrans.c                      | 150 ++--
 source3/smbd/smb1_reply.c                        |  89 +--
 source3/smbd/smb1_trans2.c                       |  61 +-
 source3/smbd/smb2_create.c                       |   7 +-
 source3/smbd/smb2_nttrans.c                      |  24 +-
 source3/smbd/smb2_query_directory.c              |   2 +-
 source3/smbd/smb2_reply.c                        | 499 +++++-------
 source3/smbd/smb2_setinfo.c                      | 124 ++-
 source3/smbd/smb2_trans2.c                       | 630 +++++----------
 source3/smbd/vfs.c                               |  12 +
 source4/torture/vfs/fruit.c                      |   2 +-
 51 files changed, 2150 insertions(+), 1798 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages/vfs_streams_xattr.8.xml 
b/docs-xml/manpages/vfs_streams_xattr.8.xml
index 6645928c016..48e6f20c8b6 100644
--- a/docs-xml/manpages/vfs_streams_xattr.8.xml
+++ b/docs-xml/manpages/vfs_streams_xattr.8.xml
@@ -71,6 +71,41 @@
            </listitem>
          </varlistentry>
 
+         <varlistentry>
+           <term>streams_xattr:max xattrs per stream = NUM</term>
+           <listitem>
+             <para>On file systems where the size of a single xattr
+             is more limited than the overall size of xattrs per
+             inode, setting this parameter to a number between 2 and
+             16 will allow smbd to store larger streams than what
+             fits into a single xattr. For example Linux has a limit
+             of 64kB per xattr, but XFS can store more than that per
+             inode.</para>
+             <para>The size of a single xattr is limited by the
+             smb.conf parameter <command>smbd max xattr
+             size</command></para>
+             <para>This is limited to 16 xattrs per alternate data
+             stream.</para>
+             <para>The default value is <command>1</command>,
+             compatible to the default behaviour before this feature
+             was introduced.</para>
+           </listitem>
+         </varlistentry>
+
+         <varlistentry>
+           <term>streams_xattr:ext_prefix = STRING</term>
+           <listitem>
+             <para>Name prefix used when storing overflow xattrs of a
+             stream. It defaults to
+             <command>streams_xattr:prefix</command> with the string
+             "Ext" appended. If
+             <command>streams_xattr:prefix</command> ends in a ".",
+             "Ext" is inserted before the ".".</para>
+             <para>The overflow xattrs will be named according to a
+             pattern following "user.DosStreamExt.0.ADS-NAME".</para>
+           </listitem>
+         </varlistentry>
+
        </variablelist>
 
 </refsect1>
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index a3521982f16..abb369c480a 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -305,6 +305,15 @@ static int skel_renameat(vfs_handle_struct *handle,
        return -1;
 }
 
+static int skel_rename_stream(struct vfs_handle_struct *handle,
+                             struct files_struct *src_fsp,
+                             const char *dst_name,
+                             bool replace_if_exists)
+{
+       errno = ENOSYS;
+       return -1;
+}
+
 static struct tevent_req *skel_fsync_send(struct vfs_handle_struct *handle,
                                          TALLOC_CTX *mem_ctx,
                                          struct tevent_context *ev,
@@ -1002,6 +1011,7 @@ static struct vfs_fn_pointers skel_opaque_fns = {
        .sendfile_fn = skel_sendfile,
        .recvfile_fn = skel_recvfile,
        .renameat_fn = skel_renameat,
+       .rename_stream_fn = skel_rename_stream,
        .fsync_send_fn = skel_fsync_send,
        .fsync_recv_fn = skel_fsync_recv,
        .stat_fn = skel_stat,
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index 4d1312414a0..9a354619265 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -395,6 +395,17 @@ static int skel_renameat(vfs_handle_struct *handle,
                        how);
 }
 
+static int skel_rename_stream(struct vfs_handle_struct *handle,
+                             struct files_struct *src_fsp,
+                             const char *dst_name,
+                             bool replace_if_exists)
+{
+       return SMB_VFS_NEXT_RENAME_STREAM(handle,
+                                         src_fsp,
+                                         dst_name,
+                                         replace_if_exists);
+}
+
 struct skel_fsync_state {
        int ret;
        struct vfs_aio_state vfs_aio_state;
@@ -1313,6 +1324,7 @@ static struct vfs_fn_pointers skel_transparent_fns = {
        .sendfile_fn = skel_sendfile,
        .recvfile_fn = skel_recvfile,
        .renameat_fn = skel_renameat,
+       .rename_stream_fn = skel_rename_stream,
        .fsync_send_fn = skel_fsync_send,
        .fsync_recv_fn = skel_fsync_recv,
        .stat_fn = skel_stat,
diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h
index c51e0b22672..f41f6c5c11c 100644
--- a/source3/include/smbprofile.h
+++ b/source3/include/smbprofile.h
@@ -75,6 +75,7 @@ struct tevent_context;
        SMBPROFILE_STATS_BYTES(syscall_sendfile) \
        SMBPROFILE_STATS_BYTES(syscall_recvfile) \
        SMBPROFILE_STATS_BASIC(syscall_renameat) \
+       SMBPROFILE_STATS_BASIC(syscall_rename_stream) \
        SMBPROFILE_STATS_BYTES(syscall_asys_fsync) \
        SMBPROFILE_STATS_BASIC(syscall_stat) \
        SMBPROFILE_STATS_BASIC(syscall_fstat) \
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 34bd97fa3de..cf6590a56cd 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -392,6 +392,8 @@
  * Version 50 - Add struct files_struct.fsp_flags.posix_append
  * Change to Version 51 - will ship with 4.23
  * Version 51 - Add ntcreatex_deny_[dos|fcb] and ntcreatex_stream_baseopen
+ * Change to Version 52 - will ship with 4.24
+ * Version 52 - Add rename_stream
  */
 
 #define SMB_VFS_INTERFACE_VERSION 51
@@ -1076,6 +1078,10 @@ struct vfs_fn_pointers {
                         struct files_struct *dstdir_fsp,
                         const struct smb_filename *smb_fname_dst,
                         const struct vfs_rename_how *how);
+       int (*rename_stream_fn)(struct vfs_handle_struct *handle,
+                               struct files_struct *src_fsp,
+                               const char *dst_name,
+                               bool replace_if_exists);
        struct tevent_req *(*fsync_send_fn)(struct vfs_handle_struct *handle,
                                            TALLOC_CTX *mem_ctx,
                                            struct tevent_context *ev,
@@ -1585,6 +1591,10 @@ int smb_vfs_call_renameat(struct vfs_handle_struct 
*handle,
                        struct files_struct *dstfsp,
                        const struct smb_filename *smb_fname_dst,
                        const struct vfs_rename_how *how);
+int smb_vfs_call_rename_stream(struct vfs_handle_struct *handle,
+                              struct files_struct *src_fsp,
+                              const char *dst_name,
+                              bool replace_if_exists);
 
 struct tevent_req *smb_vfs_call_fsync_send(struct vfs_handle_struct *handle,
                                           TALLOC_CTX *mem_ctx,
@@ -2024,6 +2034,10 @@ int vfs_not_implemented_renameat(vfs_handle_struct 
*handle,
                               files_struct *dstfsp,
                               const struct smb_filename *smb_fname_dst,
                               const struct vfs_rename_how *how);
+int vfs_not_implemented_rename_stream(struct vfs_handle_struct *handle,
+                                     struct files_struct *src_fsp,
+                                     const char *dst_name,
+                                     bool replace_if_exists);
 struct tevent_req *vfs_not_implemented_fsync_send(struct vfs_handle_struct 
*handle,
                                                  TALLOC_CTX *mem_ctx,
                                                  struct tevent_context *ev,
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index f2d8174369a..7f2e1defb46 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -209,6 +209,20 @@
 #define SMB_VFS_NEXT_RENAMEAT(handle, oldfsp, old, newfsp, newname, how) \
        smb_vfs_call_renameat((handle)->next, (oldfsp), (old), (newfsp), 
(newname), (how))
 
+#define SMB_VFS_RENAME_STREAM(conn, src_fsp, dst_name, replace_if_exists) \
+       smb_vfs_call_rename_stream((conn)->vfs_handles,                   \
+                                  (src_fsp),                             \
+                                  (dst_name),                            \
+                                  (replace_if_exists))
+#define SMB_VFS_NEXT_RENAME_STREAM(handle,            \
+                                  src_fsp,           \
+                                  dst_name,          \
+                                  replace_if_exists) \
+       smb_vfs_call_rename_stream((handle)->next,    \
+                                  (src_fsp),         \
+                                  (dst_name),        \
+                                  (replace_if_exists))
+
 #define SMB_VFS_FSYNC_SEND(mem_ctx, ev, fsp) \
        smb_vfs_call_fsync_send((fsp)->conn->vfs_handles, (mem_ctx), (ev), \
                                (fsp))
diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c
index 0cea2ba23fe..90d8df3809a 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -2176,11 +2176,10 @@ static ssize_t ad_read_meta(vfs_handle_struct *handle,
        /* Now parse entries */
        ok = ad_unpack(ad, ADEID_NUM_XATTR, AD_DATASZ_XATTR);
        if (!ok) {
-               DBG_WARNING(
-                       "Invalid AppleDouble xattr metadata (%s) in file: %s - "
-                       "Consider deleting the corrupted file.\n",
-                       smb_fname->base_name,
-                       ad->ad_fsp->fsp_name->base_name);
+               DBG_WARNING("Invalid AppleDouble xattr metadata (%s) in file: "
+                           "%s - Consider deleting the corrupted file.\n",
+                           smb_fname->base_name,
+                           fsp_str_dbg(ad->ad_fsp));
                errno = EINVAL;
                rc = -1;
                goto exit;
@@ -2390,7 +2389,7 @@ static ssize_t ad_read_rsrc_adouble(vfs_handle_struct 
*handle,
                DBG_WARNING("Invalid AppleDouble resource (%s) in file: %s - "
                            "Consider deleting the corrupted file.\n",
                            smb_fname->base_name,
-                           ad->ad_fsp->fsp_name->base_name);
+                           fsp_str_dbg(ad->ad_fsp));
                errno = EINVAL;
                return -1;
        }
@@ -2402,7 +2401,7 @@ static ssize_t ad_read_rsrc_adouble(vfs_handle_struct 
*handle,
                DBG_WARNING("Invalid AppleDouble resource (%s) in file: %s - "
                            "Consider deleting the corrupted file.\n",
                            smb_fname->base_name,
-                           ad->ad_fsp->fsp_name->base_name);
+                           fsp_str_dbg(ad->ad_fsp));
                errno = EINVAL;
                return -1;
        }
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index a261c77aca5..8f99911df40 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -216,7 +216,8 @@ int nfs4_acl_fstat(struct vfs_handle_struct *handle,
                        lp_fake_directory_create_times(SNUM(handle->conn));
 
                DBG_DEBUG("fstat for %s failed with EACCES. Trying with "
-                         "CAP_DAC_OVERRIDE.\n", fsp->fsp_name->base_name);
+                         "CAP_DAC_OVERRIDE.\n",
+                         fsp_str_dbg(fsp));
                ret = fstat_with_cap_dac_override(fsp_get_pathref_fd(fsp),
                                                  sbuf,
                                                  fake_dctime);
@@ -254,7 +255,8 @@ int nfs4_acl_fstatat(struct vfs_handle_struct *handle,
                        lp_fake_directory_create_times(SNUM(handle->conn));
 
                DBG_DEBUG("fstatat for %s failed with EACCES. Trying with "
-                         "CAP_DAC_OVERRIDE.\n", dirfsp->fsp_name->base_name);
+                         "CAP_DAC_OVERRIDE.\n",
+                         fsp_str_dbg(dirfsp));
                ret = fstatat_with_cap_dac_override(fsp_get_pathref_fd(dirfsp),
                                                    smb_fname->base_name,
                                                    sbuf,
@@ -324,7 +326,7 @@ struct SMB4ACL_T *smb_create_smb4acl(TALLOC_CTX *mem_ctx)
        theacl = talloc_zero(mem_ctx, struct SMB4ACL_T);
        if (theacl==NULL)
        {
-               DEBUG(0, ("TALLOC_SIZE failed\n"));
+               DBG_ERR("talloc_zero failed\n");
                errno = ENOMEM;
                return NULL;
        }
diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c
index 50050f8f257..8a640c6a2f3 100644
--- a/source3/modules/vfs_audit.c
+++ b/source3/modules/vfs_audit.c
@@ -243,11 +243,11 @@ static int audit_close(vfs_handle_struct *handle, 
files_struct *fsp)
 }
 
 static int audit_renameat(vfs_handle_struct *handle,
-                       files_struct *srcfsp,
-                       const struct smb_filename *smb_fname_src,
-                       files_struct *dstfsp,
-                       const struct smb_filename *smb_fname_dst,
-                       const struct vfs_rename_how *how)
+                         files_struct *src_dirfsp,
+                         const struct smb_filename *smb_fname_src,
+                         files_struct *dst_dirfsp,
+                         const struct smb_filename *smb_fname_dst,
+                         const struct vfs_rename_how *how)
 {
        struct smb_filename *full_fname_src = NULL;
        struct smb_filename *full_fname_dst = NULL;
@@ -255,26 +255,26 @@ static int audit_renameat(vfs_handle_struct *handle,
        int saved_errno = 0;
 
        full_fname_src = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 srcfsp,
-                                                 smb_fname_src);
+                                                     src_dirfsp,
+                                                     smb_fname_src);
        if (full_fname_src == NULL) {
                errno = ENOMEM;
                return -1;
        }
        full_fname_dst = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 dstfsp,
-                                                 smb_fname_dst);
+                                                     dst_dirfsp,
+                                                     smb_fname_dst);
        if (full_fname_dst == NULL) {
                TALLOC_FREE(full_fname_src);
                errno = ENOMEM;
                return -1;
        }
        result = SMB_VFS_NEXT_RENAMEAT(handle,
-                       srcfsp,
-                       smb_fname_src,
-                       dstfsp,
-                       smb_fname_dst,
-                       how);
+                                      src_dirfsp,
+                                      smb_fname_src,
+                                      dst_dirfsp,
+                                      smb_fname_dst,
+                                      how);
        if (result == -1) {
                saved_errno = errno;
        }
diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c
index c61380d64f6..acb0ed04aa3 100644
--- a/source3/modules/vfs_cap.c
+++ b/source3/modules/vfs_cap.c
@@ -189,9 +189,9 @@ static int cap_openat(vfs_handle_struct *handle,
 }
 
 static int cap_renameat(vfs_handle_struct *handle,
-                       files_struct *srcfsp,
+                       files_struct *src_dirfsp,
                        const struct smb_filename *smb_fname_src,
-                       files_struct *dstfsp,
+                       files_struct *dst_dirfsp,
                        const struct smb_filename *smb_fname_dst,
                        const struct vfs_rename_how *how)
 {
@@ -205,16 +205,16 @@ static int cap_renameat(vfs_handle_struct *handle,
        int saved_errno = 0;
 
        full_fname_src = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 srcfsp,
-                                                 smb_fname_src);
+                                                     src_dirfsp,
+                                                     smb_fname_src);
        if (full_fname_src == NULL) {
                errno = ENOMEM;
                goto out;
        }
 
        full_fname_dst = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 dstfsp,
-                                                 smb_fname_dst);
+                                                     dst_dirfsp,
+                                                     smb_fname_dst);
        if (full_fname_dst == NULL) {
                errno = ENOMEM;
                goto out;
@@ -243,11 +243,11 @@ static int cap_renameat(vfs_handle_struct *handle,
        smb_fname_dst_tmp->base_name = capnew;
 
        ret = SMB_VFS_NEXT_RENAMEAT(handle,
-                               srcfsp->conn->cwd_fsp,
-                               smb_fname_src_tmp,
-                               dstfsp->conn->cwd_fsp,
-                               smb_fname_dst_tmp,
-                               how);
+                                   src_dirfsp->conn->cwd_fsp,
+                                   smb_fname_src_tmp,
+                                   dst_dirfsp->conn->cwd_fsp,
+                                   smb_fname_dst_tmp,
+                                   how);
 
  out:
 
@@ -598,11 +598,11 @@ static int cap_readlinkat(vfs_handle_struct *handle,
 }
 
 static int cap_linkat(vfs_handle_struct *handle,
-               files_struct *srcfsp,
-               const struct smb_filename *old_smb_fname,
-               files_struct *dstfsp,
-               const struct smb_filename *new_smb_fname,
-               int flags)
+                     files_struct *src_dirfsp,
+                     const struct smb_filename *old_smb_fname,
+                     files_struct *dst_dirfsp,
+                     const struct smb_filename *new_smb_fname,
+                     int flags)
 {
        struct smb_filename *old_full_fname = NULL;
        struct smb_filename *new_full_fname = NULL;
@@ -615,9 +615,9 @@ static int cap_linkat(vfs_handle_struct *handle,
 
        /* Process 'old' name. */
        old_full_fname = full_path_from_dirfsp_atname(talloc_tos(),
-                                               srcfsp,
-                                               old_smb_fname);
-        if (old_full_fname == NULL) {
+                                                     src_dirfsp,
+                                                     old_smb_fname);
+       if (old_full_fname == NULL) {
                goto nomem_out;
         }
        capold = capencode(talloc_tos(), old_full_fname->base_name);
@@ -637,9 +637,9 @@ static int cap_linkat(vfs_handle_struct *handle,
 
        /* Process 'new' name. */
        new_full_fname = full_path_from_dirfsp_atname(talloc_tos(),
-                                               dstfsp,
-                                               new_smb_fname);
-        if (new_full_fname == NULL) {
+                                                     dst_dirfsp,
+                                                     new_smb_fname);
+       if (new_full_fname == NULL) {
                goto nomem_out;
         }
        capnew = capencode(talloc_tos(), new_full_fname->base_name);
diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c
index bc292d8f6cb..d69f66e2773 100644
--- a/source3/modules/vfs_catia.c
+++ b/source3/modules/vfs_catia.c
@@ -540,11 +540,11 @@ static int catia_openat(vfs_handle_struct *handle,
 }
 
 static int catia_renameat(vfs_handle_struct *handle,
-                       files_struct *srcfsp,
-                       const struct smb_filename *smb_fname_src,
-                       files_struct *dstfsp,
-                       const struct smb_filename *smb_fname_dst,
-                       const struct vfs_rename_how *how)
+                         files_struct *src_dirfsp,
+                         const struct smb_filename *smb_fname_src,
+                         files_struct *dst_dirfsp,
+                         const struct smb_filename *smb_fname_dst,
+                         const struct vfs_rename_how *how)
 {
        TALLOC_CTX *ctx = talloc_tos();
        struct smb_filename *smb_fname_src_tmp = NULL;
@@ -596,11 +596,11 @@ static int catia_renameat(vfs_handle_struct *handle,
                                smb_fname_str_dbg(smb_fname_dst_tmp)));
 
        ret = SMB_VFS_NEXT_RENAMEAT(handle,
-                       srcfsp,
-                       smb_fname_src_tmp,
-                       dstfsp,
-                       smb_fname_dst_tmp,
-                       how);
+                                   src_dirfsp,
+                                   smb_fname_src_tmp,
+                                   dst_dirfsp,
+                                   smb_fname_dst_tmp,
+                                   how);
 
 out:
        TALLOC_FREE(src_name_mapped);
diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index 8ea7eb09099..93a2feb4792 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -710,11 +710,11 @@ static ssize_t cephwrap_recvfile(struct vfs_handle_struct 
*handle,
 }
 
 static int cephwrap_renameat(struct vfs_handle_struct *handle,
-                       files_struct *srcfsp,
-                       const struct smb_filename *smb_fname_src,
-                       files_struct *dstfsp,
-                       const struct smb_filename *smb_fname_dst,
-                       const struct vfs_rename_how *how)
+                            files_struct *src_dirfsp,
+                            const struct smb_filename *smb_fname_src,
+                            files_struct *dst_dirfsp,
+                            const struct smb_filename *smb_fname_dst,
+                            const struct vfs_rename_how *how)
 {
        struct smb_filename *full_fname_src = NULL;
        struct smb_filename *full_fname_dst = NULL;
@@ -732,15 +732,15 @@ static int cephwrap_renameat(struct vfs_handle_struct 
*handle,
        }
 
        full_fname_src = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 srcfsp,
-                                                 smb_fname_src);
+                                                     src_dirfsp,
+                                                     smb_fname_src);
        if (full_fname_src == NULL) {
                errno = ENOMEM;
                return -1;
        }
        full_fname_dst = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 dstfsp,
-                                                 smb_fname_dst);
+                                                     dst_dirfsp,
+                                                     smb_fname_dst);
        if (full_fname_dst == NULL) {
                TALLOC_FREE(full_fname_src);
                errno = ENOMEM;
@@ -1315,25 +1315,25 @@ static int cephwrap_readlinkat(struct vfs_handle_struct 
*handle,
 }
 
 static int cephwrap_linkat(struct vfs_handle_struct *handle,
-               files_struct *srcfsp,
-               const struct smb_filename *old_smb_fname,
-               files_struct *dstfsp,
-               const struct smb_filename *new_smb_fname,
-               int flags)


-- 
Samba Shared Repository


Reply via email to