r20877: Random notify fixes
authorVolker Lendecke <vlendec@samba.org>
Thu, 18 Jan 2007 12:49:59 +0000 (12:49 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:17:17 +0000 (12:17 -0500)
source/smbd/reply.c

index 2075939f5b8044f3e66b67753d3bd10547fe56b5..2763924d4f5c5a9af6465e0e6d95c45571b939eb 100644 (file)
@@ -1866,7 +1866,8 @@ NTSTATUS unlink_internals(connection_struct *conn, uint32 dirtype,
 
                if (SMB_VFS_UNLINK(conn,directory) == 0) {
                        count++;
-                       notify_fname(conn, directory, -1,
+                       notify_fname(conn, directory,
+                                    FILE_NOTIFY_CHANGE_FILE,
                                     NOTIFY_ACTION_REMOVED);
                }
        } else {
@@ -1929,7 +1930,8 @@ NTSTATUS unlink_internals(connection_struct *conn, uint32 dirtype,
                                DEBUG(3,("unlink_internals: succesful unlink "
                                         "[%s]\n",fname));
                                notify_action(conn, directory, dname,
-                                             -1, NOTIFY_ACTION_REMOVED);
+                                             FILE_NOTIFY_CHANGE_FILE,
+                                             NOTIFY_ACTION_REMOVED);
                        }
                                
                }
@@ -3718,6 +3720,8 @@ BOOL rmdir_internals(connection_struct *conn, const char *directory)
 
        ret = SMB_VFS_RMDIR(conn,directory);
        if (ret == 0) {
+               notify_fname(conn, directory, FILE_NOTIFY_CHANGE_DIR_NAME,
+                            NOTIFY_ACTION_REMOVED);
                return True;
        }
 
@@ -3795,17 +3799,8 @@ BOOL rmdir_internals(connection_struct *conn, const char *directory)
                return False;
        }
 
-       {
-               char *parent_dir;
-               const char *dirname;
-
-               if (parent_dirname_talloc(tmp_talloc_ctx(), directory,
-                                         &parent_dir, &dirname)) {
-                       notify_action(conn, parent_dir, dirname, -1,
-                                     NOTIFY_ACTION_REMOVED);
-                       TALLOC_FREE(parent_dir); /* Not strictly necessary */
-               }
-       }
+       notify_fname(conn, directory, FILE_NOTIFY_CHANGE_DIR_NAME,
+                    NOTIFY_ACTION_REMOVED);
 
        return True;
 }