summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2019-09-26 10:41:37 -0700
committerRalph Boehme <slow@samba.org>2019-10-02 08:01:40 +0000
commitc190f3efa9eb4f633df28074b481ff884b67e65f (patch)
tree405b04b7ae8f39dc855b7c742906fde84e074c9f /source3
parent90a14c90c4bcede1ef5414e0800aa4c84cbcf1c9 (diff)
downloadsamba-c190f3efa9eb4f633df28074b481ff884b67e65f.tar.gz
s3:smbd: add a comment explaining the File-ID semantics when a file is created
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14137 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/open.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index e9c332e3e8c..5860155263b 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -3936,6 +3936,15 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
fsp->initial_delete_on_close = True;
}
+ /*
+ * If we created a file and it's not a stream, this is the point where
+ * we set the itime (aka invented time) that get's stored in the DOS
+ * attribute xattr. The value is going to be either what the filesystem
+ * provided or a copy of the creation date.
+ *
+ * Either way, we turn the itime into a File-ID, unless the filesystem
+ * provided one (unlikely).
+ */
if (info == FILE_WAS_CREATED && !is_named_stream(smb_fname)) {
smb_fname->st.st_ex_iflags &= ~ST_EX_IFLAG_CALCULATED_ITIME;