diff options
Diffstat (limited to 'source/smbd/dosmode.c')
-rw-r--r-- | source/smbd/dosmode.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/smbd/dosmode.c b/source/smbd/dosmode.c index ff4291c08c8..ad79bbacddf 100644 --- a/source/smbd/dosmode.c +++ b/source/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, NOTIFY_ACTION_MODIFIED, + FILE_NOTIFY_CHANGE_ATTRIBUTES, fname); 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, NOTIFY_ACTION_MODIFIED, + FILE_NOTIFY_CHANGE_ATTRIBUTES, fname); } 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, NOTIFY_ACTION_MODIFIED, + FILE_NOTIFY_CHANGE_LAST_WRITE, fname); return(True); } |