diff options
author | Marcus Brinkmann <marcus@gnu.org> | 2002-06-27 19:19:13 +0000 |
---|---|---|
committer | Marcus Brinkmann <marcus@gnu.org> | 2002-06-27 19:19:13 +0000 |
commit | 0100a6e5bea180aa938ad618d7ed853dd0b7ed10 (patch) | |
tree | fd7f58e3f4eea5a4bfad0509dad6619fc01a54f5 /libdiskfs/dir-chg.c | |
parent | 38a8adf4ff9c0ecfbb4adb432feeff58e5058180 (diff) |
hurd/
2002-06-26 Marcus Brinkmann <marcus@gnu.org>
* fs_notify.defs: Add MsgOption for send timeout.
(dir_changed): Changed to simpleroutine. Change type of first
argument to fs_notify_t. Add TICKNO argument.
(file_changed): Likewise.
* hurd_types.defs (fs_notify_t): New type.
* hurd_types.h (fs_notify_t): Likewise.
libdiskfs/
2002-06-26 Marcus Brinkmann <marcus@gnu.org>
* Makefile (DIST_FILES): Variable removed.
(MIGSTUBS): Use fs_notifyUser.o, not ourfs_notifyUser.o.
* ourfs_notify.defs: File removed.
* diskfs.h (struct node): New members DIRMOD_TICK and
FILEMOD_TICK.
* node-make.c (diskfs_make_node): Initialize DIRMOD_TICK and
FILEMOD_TICK.
* dir-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h".
(diskfs_S_dir_notice_changes): Use new dir_changed invocation
instead nowait_dir_changed.
(diskfs_notice_dirchange): Likewise. Increase tick number.
Ignore send timeout error.
* file-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h".
(diskfs_S_file_notice_changes): Use new file_changed invocation
instead nowait_file_changed.
(diskfs_notice_filechange): Likewise. Increase tick number.
Ignore send timeout error.
console/
2002-06-27 Marcus Brinkmann <marcus@gnu.org>
* Makefile (MIGSTUBS): Add fs_notifyUser.o.
(MIGSFLAGS): New variable.
* console.c: Include "fs_notify_U.h".
(struct modreq): New structure.
(struct cons): New members DIRMOD_REQS and DIRMOD_TICK.
(cons_notice_dirchange): New function.
(vcons_lookup): Call cons_notice_dirchange.
(netfs_S_dir_notice_changes): New function.
(main): Initialize new members in CONS.
* display.c (nowait_file_changed): Update to new interface (new
argument TICKNO).
(do_mach_notify_msg_accepted): Call nowait_file_changed with new argument.
(display_notice_changes): Likewise.
(display_notice_filechange): Likewise.
Diffstat (limited to 'libdiskfs/dir-chg.c')
-rw-r--r-- | libdiskfs/dir-chg.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libdiskfs/dir-chg.c b/libdiskfs/dir-chg.c index 0e2f4c8a..7ca34447 100644 --- a/libdiskfs/dir-chg.c +++ b/libdiskfs/dir-chg.c @@ -17,7 +17,7 @@ #include "priv.h" #include "fs_S.h" -#include "ourfs_notify_U.h" +#include "fs_notify_U.h" kern_return_t diskfs_S_dir_notice_changes (struct protid *cred, @@ -37,7 +37,7 @@ diskfs_S_dir_notice_changes (struct protid *cred, mutex_unlock (&np->lock); return ENOTDIR; } - err = nowait_dir_changed (notify, DIR_CHANGED_NULL, ""); + err = dir_changed (notify, np->dirmod_tick, DIR_CHANGED_NULL, ""); if (err) { mutex_unlock (&np->lock); @@ -63,13 +63,15 @@ diskfs_notice_dirchange (struct node *dp, enum dir_changed_type type, error_t err; struct modreq **preq; + dp->dirmod_tick++; preq = &dp->dirmod_reqs; while (*preq) { struct modreq *req = *preq; - err = nowait_dir_changed (req->port, type, name); - if (err) - { /* remove notify port */ + err = dir_changed (req->port, dp->dirmod_tick, type, name); + if (err && err != MACH_SEND_TIMED_OUT) + { + /* Remove notify port. */ *preq = req->next; mach_port_deallocate (mach_task_self (), req->port); free (req); |