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