s3:smbd: write times should be set on the base file instead of the stream name
authorStefan Metzmacher <metze@samba.org>
Mon, 1 Dec 2008 21:45:55 +0000 (13:45 -0800)
committerJeremy Allison <jra@samba.org>
Mon, 1 Dec 2008 21:45:55 +0000 (13:45 -0800)
metze

source3/smbd/trans2.c

index cc7b87f448a22baf371e837a2159f5f9322e5072..7b051d389f98cd76f8c2159ddc281e79c2528297 100644 (file)
@@ -4957,7 +4957,11 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
                          time_to_asc(convert_timespec_to_time_t(ts[1])) ));
 
                if (fsp != NULL) {
-                       set_sticky_write_time_fsp(fsp, ts[1]);
+                       if (fsp->base_fsp) {
+                               set_sticky_write_time_fsp(fsp->base_fsp, ts[1]);
+                       } else {
+                               set_sticky_write_time_fsp(fsp, ts[1]);
+                       }
                } else {
                        set_sticky_write_time_path(conn, fname,
                                            vfs_file_id_from_sbuf(conn, psbuf),
@@ -4967,6 +4971,10 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
 
        DEBUG(10,("smb_set_file_time: setting utimes to modified values.\n"));
 
+       if (fsp && fsp->base_fsp) {
+               fname = fsp->base_fsp->fsp_name;
+       }
+
        if(file_ntimes(conn, fname, ts)!=0) {
                return map_nt_error_from_unix(errno);
        }