svn commit: samba r21131 - in branches/SAMBA_3_0/source/smbd: .
vlendec at samba.org
vlendec at samba.org
Sat Feb 3 16:53:53 GMT 2007
Author: vlendec
Date: 2007-02-03 16:53:52 +0000 (Sat, 03 Feb 2007)
New Revision: 21131
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21131
Log:
Some notify fixes
Modified:
branches/SAMBA_3_0/source/smbd/trans2.c
branches/SAMBA_3_0/source/smbd/vfs.c
Changeset:
Modified: branches/SAMBA_3_0/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/trans2.c 2007-02-03 13:31:47 UTC (rev 21130)
+++ branches/SAMBA_3_0/source/smbd/trans2.c 2007-02-03 16:53:52 UTC (rev 21131)
@@ -3779,6 +3779,11 @@
const SMB_STRUCT_STAT *psbuf,
struct utimbuf tvs)
{
+ uint32 action =
+ FILE_NOTIFY_CHANGE_LAST_ACCESS
+ |FILE_NOTIFY_CHANGE_LAST_WRITE;
+
+
if (!VALID_STAT(*psbuf)) {
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
@@ -3786,10 +3791,12 @@
/* get some defaults (no modifications) if any info is zero or -1. */
if (null_mtime(tvs.actime)) {
tvs.actime = psbuf->st_atime;
+ action &= ~FILE_NOTIFY_CHANGE_LAST_ACCESS;
}
if (null_mtime(tvs.modtime)) {
tvs.modtime = psbuf->st_mtime;
+ action &= ~FILE_NOTIFY_CHANGE_LAST_WRITE;
}
DEBUG(6,("smb_set_file_time: actime: %s " , ctime(&tvs.actime)));
@@ -3826,6 +3833,9 @@
if(file_utime(conn, fname, &tvs)!=0) {
return map_nt_error_from_unix(errno);
}
+ if (action != 0) {
+ notify_fname(conn, NOTIFY_ACTION_MODIFIED, action, fname);
+ }
return NT_STATUS_OK;
}
Modified: branches/SAMBA_3_0/source/smbd/vfs.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/vfs.c 2007-02-03 13:31:47 UTC (rev 21130)
+++ branches/SAMBA_3_0/source/smbd/vfs.c 2007-02-03 16:53:52 UTC (rev 21131)
@@ -514,8 +514,13 @@
release_level_2_oplocks_on_change(fsp);
DEBUG(10,("vfs_set_filelen: ftruncate %s to len %.0f\n", fsp->fsp_name, (double)len));
flush_write_cache(fsp, SIZECHANGE_FLUSH);
- if ((ret = SMB_VFS_FTRUNCATE(fsp, fsp->fh->fd, len)) != -1)
+ if ((ret = SMB_VFS_FTRUNCATE(fsp, fsp->fh->fd, len)) != -1) {
set_filelen_write_cache(fsp, len);
+ notify_fname(fsp->conn, NOTIFY_ACTION_MODIFIED,
+ FILE_NOTIFY_CHANGE_SIZE
+ | FILE_NOTIFY_CHANGE_ATTRIBUTES,
+ fsp->fsp_name);
+ }
return ret;
}
More information about the samba-cvs
mailing list