r21714: Change the VFS interface to use struct timespec
[nivanova/samba-autobuild/.git] / source3 / smbd / files.c
index 7069818dee4f1f117f10317608028ded587679e6..062bebd58e66886627a472c0e293b83b158fa066 100644 (file)
@@ -383,11 +383,11 @@ files_struct *file_find_print(void)
  Record the owner of that modtime.
 ****************************************************************************/
 
-void fsp_set_pending_modtime(files_struct *tfsp, time_t pmod)
+void fsp_set_pending_modtime(files_struct *tfsp, const struct timespec mod)
 {
        files_struct *fsp;
 
-       if (null_mtime(pmod)) {
+       if (null_timespec(mod)) {
                return;
        }
 
@@ -395,7 +395,7 @@ void fsp_set_pending_modtime(files_struct *tfsp, time_t pmod)
                if ( fsp->fh->fd != -1 &&
                                fsp->dev == tfsp->dev &&
                                fsp->inode == tfsp->inode ) {
-                       fsp->pending_modtime = pmod;
+                       fsp->pending_modtime = mod;
                        fsp->pending_modtime_owner = False;
                }
        }
@@ -439,6 +439,11 @@ void file_free(files_struct *fsp)
                fsp->fh->ref_count--;
        }
 
+       if (fsp->notify) {
+               notify_remove(fsp->conn->notify_ctx, fsp);
+               TALLOC_FREE(fsp->notify);
+       }
+
        bitmap_clear(file_bmap, fsp->fnum - FILE_HANDLE_OFFSET);
        files_used--;
 
@@ -561,7 +566,6 @@ NTSTATUS dup_file_fsp(files_struct *fsp,
        dup_fsp->modified = fsp->modified;
        dup_fsp->is_directory = fsp->is_directory;
        dup_fsp->is_stat = fsp->is_stat;
-       dup_fsp->aio_write_behind = fsp->aio_write_behind;
         string_set(&dup_fsp->fsp_name,fsp->fsp_name);
 
        *result = dup_fsp;