s3:smbd: write times should be set on the base file instead of the stream name
authorStefan Metzmacher <metze@samba.org>
Tue, 25 Nov 2008 20:02:25 +0000 (21:02 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 26 Nov 2008 22:02:22 +0000 (23:02 +0100)
metze

source/smbd/trans2.c

index 80c3694f4beb87aa9074ba3984852f6f8ddbaf92..c3e723a136a226485a04e57aeec8bdd1d02ebdc3 100644 (file)
@@ -4932,7 +4932,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),
@@ -4942,6 +4946,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);
        }