]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Introduce metadata_fsp()
authorVolker Lendecke <vl@samba.org>
Fri, 11 Feb 2022 08:45:30 +0000 (09:45 +0100)
committerJule Anger <janger@samba.org>
Tue, 6 Sep 2022 06:32:13 +0000 (06:32 +0000)
Centralize the pattern

if (fsp->base_fsp != NULL) {
fsp = fsp->base_fsp;
}

with a descriptive name.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(backported from commit ac58b0b942cd73210100ee346816a0cf23900716)
[slow@samba.org: only backport the function, skip all updated callers]

source3/smbd/files.c
source3/smbd/proto.h

index 2930ceb18f6e76903c08d9725ee1445aacd016cf..3b3dfc1b8c85a24518ada7defcb54343478f7a99 100644 (file)
@@ -1492,3 +1492,11 @@ bool fsp_is_alternate_stream(const struct files_struct *fsp)
 {
        return (fsp->base_fsp != NULL);
 }
+
+struct files_struct *metadata_fsp(struct files_struct *fsp)
+{
+       if (fsp_is_alternate_stream(fsp)) {
+               return fsp->base_fsp;
+       }
+       return fsp;
+}
index 9539a3c2d4cd5dadcf8c748d5ddcb37edc38b2f7..776ee6b298589c7168f495853ae3d6ba52fb9bd0 100644 (file)
@@ -439,6 +439,7 @@ NTSTATUS fsp_set_smb_fname(struct files_struct *fsp,
 size_t fsp_fullbasepath(struct files_struct *fsp, char *buf, size_t buflen);
 void fsp_set_base_fsp(struct files_struct *fsp, struct files_struct *base_fsp);
 bool fsp_is_alternate_stream(const struct files_struct *fsp);
+struct files_struct *metadata_fsp(struct files_struct *fsp);
 
 NTSTATUS create_internal_fsp(connection_struct *conn,
                             const struct smb_filename *smb_fname,