diff options
Diffstat (limited to 'source3/smbd/dosmode.c')
-rw-r--r-- | source3/smbd/dosmode.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index ff4291c08c..44e637a0ee 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -491,8 +491,11 @@ int file_set_dosmode(connection_struct *conn, const char *fname, unixmode |= (st->st_mode & (S_IWUSR|S_IWGRP|S_IWOTH)); } - if ((ret = SMB_VFS_CHMOD(conn,fname,unixmode)) == 0) + if ((ret = SMB_VFS_CHMOD(conn,fname,unixmode)) == 0) { + notify_fname(conn, fname, FILE_NOTIFY_CHANGE_ATTRIBUTES, + NOTIFY_ACTION_MODIFIED); return 0; + } if((errno != EPERM) && (errno != EACCES)) return -1; @@ -521,6 +524,8 @@ int file_set_dosmode(connection_struct *conn, const char *fname, ret = SMB_VFS_FCHMOD(fsp, fsp->fh->fd, unixmode); unbecome_root(); close_file_fchmod(fsp); + notify_fname(conn, fname, FILE_NOTIFY_CHANGE_ATTRIBUTES, + NOTIFY_ACTION_MODIFIED); } return( ret ); @@ -593,6 +598,9 @@ BOOL set_filetime(connection_struct *conn, const char *fname, time_t mtime) DEBUG(4,("set_filetime(%s) failed: %s\n",fname,strerror(errno))); return False; } + + notify_fname(conn, fname, FILE_NOTIFY_CHANGE_LAST_WRITE, + NOTIFY_ACTION_MODIFIED); return(True); } |