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:44:43 +0000 (13:44 -0800)
committerJeremy Allison <jra@samba.org>
Mon, 1 Dec 2008 21:44:43 +0000 (13:44 -0800)
metze

source/smbd/trans2.c

index 89a79111c9a1c17415b7ca0be627c47fffec5688..cb7cad153f0c475329c1bcce16240fd13602c90f 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);
        }