diff options
Diffstat (limited to 'libdiskfs')
-rw-r--r-- | libdiskfs/ChangeLog | 4136 | ||||
-rw-r--r-- | libdiskfs/boot-start.c | 8 | ||||
-rw-r--r-- | libdiskfs/dir-lookup.c | 28 | ||||
-rw-r--r-- | libdiskfs/dir-rename.c | 12 | ||||
-rw-r--r-- | libdiskfs/dir-renamed.c | 1 | ||||
-rw-r--r-- | libdiskfs/diskfs.h | 14 | ||||
-rw-r--r-- | libdiskfs/file-utimes.c | 6 | ||||
-rw-r--r-- | libdiskfs/fsys-getroot.c | 3 | ||||
-rw-r--r-- | libdiskfs/io-pathconf.c | 1 | ||||
-rw-r--r-- | libdiskfs/io-reauthenticate.c | 2 | ||||
-rw-r--r-- | libdiskfs/lookup.c | 2 | ||||
-rw-r--r-- | libdiskfs/node-times.c | 44 | ||||
-rw-r--r-- | libdiskfs/priv.h | 6 |
13 files changed, 72 insertions, 4191 deletions
diff --git a/libdiskfs/ChangeLog b/libdiskfs/ChangeLog deleted file mode 100644 index 197ec5ed..00000000 --- a/libdiskfs/ChangeLog +++ /dev/null @@ -1,4136 +0,0 @@ -2007-04-04 Thomas Schwinge <tschwinge@gnu.org> - - * opts-std-startup.c (parse_startup_opt) - <_diskfs_no_inherit_dir_group>: Swap the options into the correct - order. Reported by Olaf Buddenhagen <olafbuddenhagen@gmx.net>. - -2006-06-28 Thomas Schwinge <tschwinge@gnu.org> - - * Makefile (HURDLIBS): Add `pager'. - -2006-03-15 Thomas Schwinge <tschwinge@gnu.org> - - * priv.h: Include <argp.h>. - -2006-03-05 Roland McGrath <roland@frob.com> - - * io-seek.c (diskfs_S_io_seek): Return EINVAL if file pointer would - become negative. - -2004-02-10 Roland McGrath <roland@frob.com> - - * opts-runtime.c (diskfs_runtime_argp): Include <argp.h>. - -2003-10-11 Marcus Brinkmann <marcus@gnu.org> - - * notify-nosenders.c, notify-stubs.c: Delete obsolete files. - -2003-06-11 Ognyan Kulev <ogi@fmi.uni-sofia.bg> - - * dir-renamed.c (diskfs_rename_dir): Check permissions to remove - FROMNAME before any modification could take place. Check result - of removing the from node. - -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. - -2002-06-13 Roland McGrath <roland@frob.com> - - * dir-readdir.c (diskfs_S_dir_readdir): Revert last change. - -2002-06-08 Roland McGrath <roland@frob.com> - - * io-identity.c (diskfs_S_io_identity): Use ino_t for FILENO. - - * dir-readdir.c (diskfs_S_dir_readdir): Use vm_size_t for AMT. - - * diskfs.h (struct node): Use io_statbuf_t instead of struct stat. - (struct node): Use ino64_t for cache_id. - (struct node): Use loff_t instead of off_t. - (diskfs_grow, diskfs_truncate, diskfs_node_rdwr): Likewise. - (diskfs_notice_filechange): Likewise. - (diskfs_cached_lookup): Use ino64_t for CACHE_ID argument. - -2002-05-26 Roland McGrath <roland@frob.com> - - * dir-unlink.c (diskfs_S_dir_unlink): Return EPERM instead of EISDIR, - as per POSIX. - -2002-05-12 Roland McGrath <roland@frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Fail with EACCES instead of - EOPNOTSUPP when attempting to open a special file for io or exec. - -2002-05-11 Roland McGrath <roland@frob.com> - - * trans-callback.c (_diskfs_translator_callback1_fn): Add an assert - that netfs_get_translator not fail with EOPNOTSUPP. - -2001-11-20 Neal H Walfield <neal@cs.uml.edu> - - * diskfs.h (diskfs_boot_filesystem): Documentation fix. - -2002-05-08 Roland McGrath <roland@frob.com> - - * sync-interval.c (diskfs_set_sync_interval): Cast int to intptr_t - before any_t. - - * io-map-cntl.c (diskfs_S_io_map_cntl): u_int -> vm_address_t - - * disk-pager.c (fault_handler): Use %z format for sc_pc. - - * dir-lookup.c (diskfs_S_dir_lookup): int -> size_t - * dir-readdir.c (diskfs_S_dir_readdir): Likewise. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - - * diskfs.h (diskfs_append_args): unsigned -> size_t in argument type. - (diskfs_append_std_options): Likewise. - (diskfs_get_directs): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Likewise. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - * file-getfh.c (diskfs_S_file_getfh): Likewise. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise. - * opts-append-std.c (diskfs_append_std_options): Likewise. - * opts-get.c (diskfs_append_args): Likewise. - * dir-readdir.c (diskfs_S_dir_readdir): Likewise. - -2002-05-08 Roland McGrath <roland@frob.com> - - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Remove unused var. - -2002-05-04 Roland McGrath <roland@frob.com> - - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Use - iohelp_restrict_iouser. - -2002-04-02 Roland McGrath <roland@frob.com> - - * node-make.c (diskfs_make_node): Return early if malloc fails. - -2002-04-30 Marcus Brinkmann <marcus@gnu.org> - - * priv.h: Add OPT_NO_INHERIT_DIR_GROUP and OPT_INHERIT_DIR_GROUP. - (_diskfs_no_inherit_dir_group): New declaration. - * node-create.c (_diskfs_no_inherit_dir_group): New variable. - (diskfs_create_node): Implement SysV group behaviour. - * opts-common.c (diskfs_common_options): Add - --no-inherit-dir-group (--nogrpdir, --sysvgroups) and - --inherit-dir-group (--grpdir, --bsdgroups). - * opts-append-std.c (diskfs_append_std_options): Add - --no-inherit-dir-group if set. - * opts-std-startup.c (parse_startup_opt): Add toggle for - _diskfs_no_inherit_dir_group. - * opts-std-runtime.c (struct parse_hook): Add noinheritdirgroup. - (set_opts): Handle H->noinheritdirgroup. - (parse_opt): Initialize H->noinheritdirgroup. Handle - OPT_NO_INHERIT_DIR_GROUP and OPT_INHERIT_DIR_GROUP. - -2002-03-23 James A. Morrison <ja2morri@uwaterloo.ca> - - * init-startup.c (_diskfs_init_completed): Use error, not - fprintf. - -2002-03-25 Neal H Walfield <neal@cs.uml.edu> - - * peropen-make.c (diskfs_make_peropen): Instead of returning the - peropen, return as error_t and return the peropen in the new - parameter *PPO. - * diskfs.h (diskfs_make_peropen): Change declaration to reflect - new semantics. - - * boot-start.c (diskfs_start_bootstrap): Check the return value of - diskfs_make_peropen using the new semantics. - (diskfs_S_exec_startup_get_info): Likewise. - (diskfs_execboot_fsys_startup): Likewise. - (diskfs_S_fsys_init): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * file-reparent.c (diskfs_S_file_reparent): Likewise. - * fsys-getfile.c (diskfs_S_fsys_getfile): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * trans-callback.c (_diskfs_translator_callback2_fn): Likewise. - * init-startup.c (diskfs_startup_diskfs): Likewise. - -2002-03-12 Marcus Brinkmann <marcus@gnu.org> - - * opts-append-std.c (diskfs_append_std_options): Only add --sync=N - or --no-sync option if it is not the default. - -2002-03-06 Roland McGrath <roland@frob.com> - - * dir-mkfile.c (diskfs_S_dir_mkfile): Clear OPENONLY_STATE_MODES bits - from FLAGS, not all bits outside O_RDWR|O_EXEC. - -2002-03-05 Marcus Brinkmann <marcus@gnu.org> - - * diskfs.h: Refer to dir_lookup, not dir_pathtrans, in comment. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - Reported by James A Morrison <ja2morri@student.math.uwaterloo.ca>. - -2002-01-03 Roland McGrath <roland@frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Clear S_ITRANS bits in MODE. - * dir-mkdir.c (diskfs_S_dir_mkdir): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - - * file-chmod.c (diskfs_S_file_chmod): Preserve S_ITRANS bits in change. - -2002-01-02 Roland McGrath <roland@frob.com> - - * boot-start.c (diskfs_start_bootstrap) [KERN_INVALID_LEDGER]: - Pass extra arguments to task_create for OSF variant. - -2001-12-31 Roland McGrath <roland@frob.com> - - * disk-pager.c (fault_handler): Use sc_pc instead of sc_eip. - -2001-12-08 Roland McGrath <roland@frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Append trailing / to RETRYNAME - returned for absolute symlink when MUSTBEDIR is set. - Reported by Moritz Schulte <moritz@duesseldorf.ccc.de>. - Also, bcopy -> memcpy; avoid strcat. - -2001-10-30 Marcus Brinkmann <marcus@gnu.org> - - * dir-lookup.c (diskfs_S_dir_lookup): When looking up the next - pathname component, remove assertion for DS and allocate DS if 0. - Allow creation of files through symlink with non-existant target. - From Roland McGrath <roland@frob.com>. - -2001-10-11 Roland McGrath <roland@frob.com> - - * dir-renamed.c (diskfs_rename_dir): Fix bogus assert. - From Moritz Schulte <moritz@chaosdorf.de>. - -2001-10-01 Marcus Brinkmann <marcus@gnu.org> - - * file-getfh.c (diskfs_S_file_getfh): Fix tag of diskfs_fhandle. - Submitted by Maurizio Boriani <baux@debian.org>. - -2001-08-22 Neal H Walfield <neal@cs.uml.edu> - - * opts-std-startup.c (startup_options): New compatibility - option: bootflags, a hidden alias to multiboot-command-line. - (parse_startup_opt): Bug fix. - -2001-08-20 Roland McGrath <roland@frob.com> - - * opts-std-startup.c: diskfs_boot_flags -> diskfs_boot_command_line. - (OPT_BOOT_CMDLINE): Renamed from OPT_BOOTFLAGS. - (startup_options): --bootflags -> --multiboot-command-line - (parse_startup_opt): Parse it. - * diskfs.h: diskfs_boot_flags -> diskfs_boot_command_line. - (diskfs_boot_filesystem): New macro. - * init-main.c (diskfs_init_main): Use it. - * init-init.c (diskfs_init_diskfs): Likewise. - * console.c (diskfs_console_stdio): Likewise. - * boot-start.c (_diskfs_boot_privports): Likewise. - (diskfs_start_bootstrap): Split boot_command_line into words and pass - those arguments to init instead of diskfs_bootflags. - - * opts-std-startup.c (_diskfs_boot_pause): New variable. - (OPT_BOOT_PAUSE): New macro. - (startup_options): Add --boot-debug-pause. - (parse_startup_opt): Parse it. - - * diskfs.h: Declare it. - * boot-start.c (diskfs_start_bootstrap, start_execserver): Use it. - - * boot-start.c (diskfs_boot_init_program): New variable. - * diskfs.h: Declare it. - * boot-start.c (default_init): Variable removed. - (diskfs_start_bootstrap): Use diskfs_boot_init_program instead - of default_init or prompting under -i. - * opts-std-startup.c (OPT_BOOT_INIT_PROGRAM): New macro. - (startup_options): Add --boot-init-program. - (parse_startup_opt): Parse it. - -2001-06-21 Neal H Walfield <neal@cs.uml.edu> - - * file-getcontrol.c (diskfs_S_file_getcontrol): When checking - if we can give the control port out, use fshelp_iscontroller - rather than doing the check by hand. - -2001-06-19 Roland McGrath <roland@frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Handle symlinks to "". - -2001-06-16 Roland McGrath <roland@frob.com> - - * file-set-trans.c (diskfs_S_file_set_translator): Add some parens. - -2001-04-01 Neal H Walfield <neal@cs.uml.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Use - iohelp_create_empty_iouser. - * fsys-getfile.c (diskfs_S_fsys_getfile): Use - iohelp_create_complex_iouser. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use - new iohelp_reauth semantics. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Use - new iohelp_create_iouser semantics. - * protid-make.c (diskfs_finish_protid): Use - iohelp_create_simple_iouser and new iohelp_dup_iouse - semantics. - * trans-callback.c (_diskfs_translator_callback2_fn): - Use iohelp_create_simple_iouser. - -2001-06-15 Neal H Walfield <neal@cs.uml.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): If - FS_TRANS_ORPHAN is set, do not ask the active translator to go - away, just disconnect it. - -2001-06-15 Roland McGrath <roland@frob.com> - - * Makefile (FSSRCS): Last change got botched in merging. - -2001-06-10 Neal H Walfield <neal@cs.uml.edu> - - * file-inv-trans.c: Remove this file, function no longer exists. - * Makefile (FSSRCS): Remove reference to file-inv-trans.c. - -2001-05-13 Marcus Brinkmann <marcus@gnu.org> - - * file-exec.c: Initialize GID with st_gid rather than st_uid. - -2001-04-22 Neal H Walfield <neal@cs.uml.edu> - - * Makefile (OTHERSRCS): Add extern-inline.c. - * diskfs.h (DISKFS_EXTERN_INLINE): New macro. - (diskfs_spawn_first_thread): Update prototype to include the - additional parameter, a demuxer. - (diskfs_begin_using_protid_port): Moved and renamed function - begin_using_protid_port from priv.h. - (diskfs_end_using_protid_port): Moved and renamed function - end_using_protid_port from priv.h. - * extern-inline.c: New file. - * fsmutations.h (FILE_INTRAN): Use new function name. - (FILE_DESTRUCTOR): Likewise. - (IO_INTRAN): Likewise. - (IO_DESTRUCTOR): Likewise. - * init-first.c: Include <hurd/ports.h>. - (master_thread_function): Unnamed parameter is now the demuxer. - Use that rather than diskfs_demuxer directly. - (diskfs_spawn_first_thread): New parameter DEMUXER. - * init-main.c (diskfs_init_main): Pass diskfs_demuxer to - diskfs_spawn_first_thread to conform to new semantics. - * priv.h (begin_using_protid_port): Moved to diskfs.h. - (end_using_protid_port): Likewise. - -2001-04-14 Neal H Walfield <neal@cs.uml.edu> - - * node-create.c (diskfs_create_node): If we fail, set *NEWNODE - to NULL; at least diskfs_S_dir_lookup depends on this behavior. - - * init-startup.c (diskfs_startup_diskfs): Use ERR, not errno, so - we can actually read this variable in a debugger. - -2001-04-08 Neal H Walfield <neal@cs.uml.edu> - - * io-write.c (diskfs_S_io_write): Make local variable OFF an - off_t and not an int. - * io-read.c (diskfs_S_io_read): Likewise. - * io-stat.c (diskfs_S_io_stat): Use memcpy, not bcopy. - -2001-04-01 Roland McGrath <roland@frob.com> - - * io-interrupt.c: Obsolete file removed. - * Makefile (IOSRCS): Remove it from the list. - Reported by Neal H Walfield <neal@cs.uml.edu>. - -2001-03-28 Neal H Walfield <neal@cs.uml.edu> - - * protid-rele.c: Doc typo fix. - - * shutdown.c: Move initialization of diskfs_fsys_lock from here ... - * init-init.c: ... to here with the rest of the initialization - code. - - * init-init.c: Do not initialize global variables to zero. - - * protid-rele: Doc fix. - * node-nput.c: Likewise. - * io-prenotify.c: Likewise. - - * dir-chg.c (diskfs_S_dir_notice_changes): Check what malloc - returns. - * peropen-make.c (diskfs_make_peropen): Likewise. - - * io-identity.c (diskfs_S_io_identity): Use INUM; that is what - we bothered getting the lock for. - - * ports-noports.c, ports-clean.c, ports-soft.c, ports-idle.c, - ports-consts.c: Dead files finally removed from cvs. - -2001-03-28 Marcus Brinkmann <marcus@gnu.org> - - * dir-lookup.c (diskfs_S_dir_lookup): New variable USER. Store new - iouser in that variable and free it after creating the protid for - DIRPORT. - * trans-callback.c (_diskfs_translator_callback2_fn): Likewise. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Likewise. - -2001-02-25 Roland McGrath <roland@frob.com> - - * readonly-changed.c: New file. - * Makefile (OTHERSRCS): Add it. - - * init-first.c: Include <stdlib.h> for exit decl. - -2001-01-30 Neal H Walfield <neal@cs.uml.edu> - - * diskfs.h: Fix comment (fsys_shutdown -> fsys_goaway). - -2001-01-07 Marcus Brinkmann <marcus@gnu.org> - - * diskfs.h: Make diskfs_dirstat_size const. - -2001-01-07 Marcus Brinkmann <marcus@gnu.org> - - * file-statfs.c: Include <string.h>. - -2000-12-26 Roland McGrath <roland@frob.com> - - * file-statfs.c (diskfs_S_file_statfs): Zero out the struct statfs - before calling diskfs_set_statfs. Set f_namelen to diskfs_name_max - after the call. - * diskfs.h: Update comment. - -2000-12-02 Roland McGrath <roland@frob.com> - - * node-times.c (diskfs_set_node_times): Make individual flag checks - race-proof so we don't lose any flag settings. - -2000-07-26 Mark Kettenis <kettenis@gnu.org> - - * Makefile (HURDLIBS): Reorder libs such that the threads lib - comes before the ports lib. This makes sure the functions in - libthreads properly override the stubs in libports with the new - dynamic linker semantics in glibc 2.2. - -2000-07-18 Thomas Bushnell, BSG <tb@mit.edu> - - * io-seek.c (diskfs_S_io_seek): Don't use CHANGE_NODE_FIELD - anymore; it was causing problems and was a gross hack anyway. - -2000-05-14 Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> - - * priv.h (DEFAULT_SYNC_INTERVAL): New macro. - (DEFAULT_SYNC_INTERVAL_STRING): Likewise. - (STRINGIFY): Likewise. - (STRINGIFY_1): Likewise. - * opts-common.h (diskfs_common_options): Use - DEFAULT_SYNC_INTERVAL_STRING instead hardcoded value. - * sync-default.h: Include "priv.h". Use DEFAULT_SYNC_INTERVAL - instead hardcoded value. - -2000-04-29 Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> - - * init-main.c (diskfs_init_main): Dereference BOOTSTRAP before - checking for MACH_PORT_NULL. - -2000-03-17 Roland McGrath <roland@baalperazim.frob.com> - - * file-exec.c (diskfs_S_file_exec): Fix typo and braino in last change. - * init-startup.c (diskfs_startup_diskfs): Fix braino in last change. - -2000-03-17 Thomas Bushnell, BSG <tb@mit.edu> - - * boot-start.c (diskfs_S_fsys_init, diskfs_start_bootstrap): Don't - use MOVE_SEND in Hurd RPC. - - * file-exec.c (diskfs_S_file_exec): Don't use MAKE_SEND in Hurd - RPC. - * init-startup.c (diskfs_startup_diskfs, _diskfs_init_completed): - Likewise. - -2000-03-17 Roland McGrath <roland@baalperazim.frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Use ports_get_send_right. - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use - ports_get_send_right. - - * boot-start.c (diskfs_start_bootstrap): Use ports_get_send_right. - (diskfs_execboot_fsys_startup): Use ports_get_send_right. - (diskfs_S_fsys_init): Use ports_get_send_right. - (start_execserver): Use ports_get_send_right. - -2000-02-27 Roland McGrath <roland@baalperazim.frob.com> - - * file-exec.c (diskfs_S_file_exec): Give the new peropen for the exec - server O_EXEC permission as well as O_READ. - -2000-01-25 Roland McGrath <roland@baalperazim.frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Follow symlink despite flags if - MUSTBEDIR is set (i.e. there was a trailing slash). - -2000-01-24 Roland McGrath <roland@baalperazim.frob.com> - - * rdwr-internal.c (_diskfs_rdwr_internal): Short-circuit return for - zero-length transfer to avoid side effects, as POSIX requires. - -1999-12-13 Roland McGrath <roland@baalperazim.frob.com> - - Rewrite of a fix provided by Bill White <bill.white@griggsinst.com>: - * fhandle.h (union diskfs_fhandle): Replaces struct diskfs_fhandle. - Use a union element of char[28] to ensure size requirement. - * fsys-getfile.c (diskfs_S_fsys_getfile): Update uses for new type. - * file-getfh.c (diskfs_S_file_getfh): Likewise. - -1999-12-02 Mark Kettenis <kettenis@gnu.org> - - * io-read.c (diskfs_S_io_read): Add braces to silence gcc - warning. - -1999-11-09 Roland McGrath <roland@baalperazim.frob.com> - - * priv.h (_diskfs_chroot_directory): Remove const from type. - * init-startup.c (_diskfs_chroot_directory): Likewise. - -1999-11-08 Roland McGrath <roland@baalperazim.frob.com> - - * disk-pager.c (fault_handler): Put more detail in assert failures. - -1999-10-28 Roland McGrath <roland@baalperazim.frob.com> - - * node-nput.c (diskfs_nput): Call diskfs_set_node_times before - diskfs_lost_hardrefs. This should address the late mtime update - bug reported and investigated by Mark Kettenis. - -1999-10-23 Roland McGrath <roland@baalperazim.frob.com> - - * sync-interval.c (periodic_sync): With diskfs_fsys_lock reader lock - held, check _diskfs_diskdirty and don't sync if not dirty. - -1999-10-14 Roland McGrath <roland@baalperazim.frob.com> - - * opts-std-startup.c (TOGGLE): Fix `off' case. - Reported by Kalle Olavi Niemitalo <tosi@ees2.oulu.fi>. - -1999-10-13 Roland McGrath <roland@baalperazim.frob.com> - - * io-pathconf.c (diskfs_S_io_pathconf): Cap diskfs_name_max to size - representable in struct dirent.d_namlen. - (diskfs_S_io_pathconf): Always return 1 for _PC_NO_TRUNC, since we - always constrain diskfs_name_max. - - * lookup.c (diskfs_lookup): Enforce diskfs_name_max limit for CREATE - and RENAME, returning ENAMETOOLONG for violations. - * io-pathconf.c (diskfs_S_io_pathconf): _PC_NO_TRUNC controlled by - diskfs_name_max setting. - - * diskfs.h (diskfs_name_max): Declare new variable. - * io-pathconf.c (diskfs_S_io_pathconf): Use it for _PC_NAME_MAX, - capping it to 1024. - -1999-10-12 Roland McGrath <roland@baalperazim.frob.com> - - * opts-std-runtime.c (parse_opt: ARGP_KEY_INIT): Initialize H->noatime. - -1999-10-11 Roland McGrath <roland@baalperazim.frob.com> - - * dir-readdir.c (diskfs_S_dir_readdir): Take new DATA_DEALLOC param. - -1999-10-07 Roland McGrath <roland@baalperazim.frob.com> - - * lookup.c (diskfs_lookup): Rewrite code from last change, which had - typos (and then I just decided to change the details of the string - diddling). - -1999-10-06 Thomas Bushnell, BSG <tb@mit.edu> - - * lookup.c (diskfs_lookup): NAME is no longer const. Update - documentation. Strip leading and trailing slashes from NAME before - using it. - * diskfs.h (diskfs_lookup): NAME is no longer const. - Update documentation. - -1999-10-05 Thomas Bushnell, BSG <tb@mit.edu> - - * priv.h (CHANGE_NODE_FIELD): Use diskfs_check_readonly instead of - directly reading diskfs_readonly. - -1999-09-20 Thomas Bushnell, BSG <tb@mit.edu> - - * node-times.c (diskfs_set_node_times): Don't implement - _diskfs_noatime here. - * conch-fetch.c (iohelp_fetch_shared_data): Don't update - dn_set_atime on affected node if _diskfs_noatime. - * rdwr-internal.c (_diskfs_rdwr_internal): Likewise. - -1999-09-19 Roland McGrath <roland@baalperazim.frob.com> - - * node-times.c (diskfs_set_node_times): If _diskfs_noatime is set and - neither NP->dn_set_mtime nor NP->dn_set_ctime is set, clear - NP->dn_set_atime. Short-circuit return if none of dn_set_?time set. - * opts-common.c (diskfs_common_options): Include "priv.h". - Add aliases --ro/--rw for -r/-w. Add alias --nosuid for --no-suid, - --noexec for --no-exec. Move --suid-ok, --exec-ok here from ... - * opts-std-runtime.c (std_runtime_options): ... here. - (struct parse_hook): New member `noatime'. - (set_opts): Use H->noatime to set _diskfs_noatime. - (parse_opt): Grok -A and OPT_ATIME to set/clear H->noatime. - (OPT_ATIME): New macro. - (OPT_SUID_OK, OPT_EXEC_OK): Moved to ... - * priv.h: ... here. - (diskfs_common_options): Add const to decl. - * opts-std-startup.c (parse_startup_opt): Grok OPT_SUID_OK, - OPT_EXEC_OK, -A, and OPT_ATIME. - * init-init.c (_diskfs_noatime): New variable. - (_diskfs_nosuid, _diskfs_noexec): Use uninitialized defns. - * opts-append-std.c (diskfs_append_std_options): Add --no-atime if - _diskfs_noatime is set. - -1999-09-13 Roland McGrath <roland@baalperazim.frob.com> - - * Makefile, rdwr-internal.c, io-map.c, io-map-segment.c, diskfs.h: - Reverted changes related to io_map_segment. - -1999-09-09 Thomas Bushnell, BSG <tb@mit.edu> - - * io-pathconf.c: Include <unistd.h>. - (diskfs_S_io_pathconf): Provide real definition. - -1999-09-07 Thomas Bushnell, BSG <tb@mit.edu> - - * io-map-segment.c: New file. Guts from io-map.c. - * io-map.c (diskfs_S_io_map): Just call diskfs_S_io_map_segment. - * diskfs.h (diskfs_get_filemap): New parameter `index'. - * rdwr-internal.c (_diskfs_rdwr_internal): Pass additional - parameter to diskfs_get_filemap. - * Makefile (IOSRCS): Add io-map-segment.c. - -1999-07-24 Roland McGrath <roland@baalperazim.frob.com> - - * dir-rmdir.c (diskfs_S_dir_rmdir): Fix bugs in last change. - Replace label `out' with local inline function `done'. - Don't try diskfs_nput (NP) when NP is null. - -1999-07-17 Roland McGrath <roland@baalperazim.frob.com> - - * dir-link.c (diskfs_S_dir_link): Fix error checks on ports. - If DIRCRED (receiver port) is bad, return EOPNOTSUPP. - If FILECRED (argument port) is bad, return EXDEV (after EROFS check). - -1999-07-11 Roland McGrath <roland@baalperazim.frob.com> - - * boot-start.c (diskfs_S_exec_startup_get_info): Typo in last change. - -1999-07-10 Roland McGrath <roland@baalperazim.frob.com> - - * priv.h: Add #include <sys/mman.h> for munmap decl. - -1999-07-09 Thomas Bushnell, BSG <tb@mit.edu> - - * boot-start.c (diskfs_S_exec_startup_get_info): Use mmap instead - of vm_allocate. - (diskfs_S_fsys_init): Likewise. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - * file-getfh.c (diskfs_S_file_getfh): Likewise. - * io-read.c (diskfs_S_io_read): Likewise. - -Mon Jul 5 20:03:18 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * node-nputl.c (diskfs_nput_light): Fix typo in function - declaration. Reported by Yamashita TAKAO - (jargon@lares.dti.ne.jp). - -1999-07-03 Thomas Bushnell, BSG <tb@mit.edu> - - * file-get-trans.c (diskfs_S_file_get_translator): Use munmap - instead of vm_deallocate. - * io-read.c (diskfs_S_io_read): Likewise. - * protid-rele.c (diskfs_protid_rele): Likewise. - -1999-07-01 Thomas Bushnell, BSG <tb@mit.edu> - - * node-nref.c: New file; guts from diskfs.h. - * node-nput.c: Likewise. - * node-nrele.c: Likewise. - * node-nrefl.c: Likewise. - * node-nputl.c: Likewise. - * node-nrelel.c: LIkewise. - * diskfs.h (diskfs_nref, diskfs_nput, diskfs_nrele, - diskfs_nref_light, diskfs_nput_light, diskfs_nrele_light): Replace - inline definitions with ordinary declarations. - (DISKFS_EI): Removed macro. - * diskfs.c: Deleted file. - * Makefile (OTHERSRCS): Added node-nref.c, node-nput.c - node-nrele.c, node-nrefl.c, node-nputl.c, node-nrelel.c. Removed - diskfs.c. - -1999-06-29 Thomas Bushnell, BSG <tb@mit.edu> - - * dev-globals.c, dev-io.c, dev-open.c: Files removed. - - * lookup.c (diskfs_lookup): If we get an error from - fshelp_checkdirmod, clear *NP as well as returning the error. - Use diskfs_nrele instead of diskfs_nput in case *NP and DP are - the same. - -1999-06-28 Thomas Bushnell, BSG <tb@mit.edu> - - * dir-rmdir.c (diskfs_S_dir_rmdir): Reorganized to make clearer; - several little buglets fixed too. - -1999-06-27 Thomas Bushnell, BSG <tb@mit.edu> - - * sync-default.c (diskfs_default_sync_interval): Reduce to five - seconds. Hardware is much different than when Unix originally - picked thirty, plus we manage VM differently than the Unix buffer - cache did, and tend to delay many more writes than Unix did. - -1999-06-13 Roland McGrath <roland@baalperazim.frob.com> - - * file-get-trans.c (diskfs_S_file_get_translator): Fix type cast in - last change. - - * file-get-trans.c (diskfs_S_file_get_translator): If we return an - error, vm_deallocate any vm_allocated memory. - From Mark Kettenis <kettenis@gnu.org>. - -1999-06-02 Roland McGrath <roland@baalperazim.frob.com> - - * boot-start.c (diskfs_start_bootstrap): Pass environment collected - from `environ' on to init. The kernel can send more parameters - through this way without us knowing about them specifically. - -1999-05-19 Roland McGrath <roland@baalperazim.frob.com> - - * console.c (diskfs_console_stdio): If there is an fd 2 that appears - to work, just leave it as is and dup2 it to fd 1 as well. - -1999-05-16 Roland McGrath <roland@baalperazim.frob.com> - - * file-chown.c (diskfs_S_file_chown): Fix last change: not just - permission check, actually don't make the change if value is -1. - -1999-05-13 Roland McGrath <roland@baalperazim.frob.com> - - * file-chown.c (diskfs_S_file_chown): Either arg being -1 means don't - change that id. - -Tue Apr 6 10:05:49 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * dir-renamed.c (diskfs_rename_dir): Stage 1, if TNP == FNP, we - have to unlock TNP with diskfs_nput and not just diskfs_nrele it. - -Tue Mar 16 17:20:06 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * lookup.c (diskfs_lookup): Reformat for prettiness. - -1999-02-28 Roland McGrath <roland@baalperazim.frob.com> - - * io-revoke.c (diskfs_S_io_revoke): Use ports_class_iterate. - * readonly.c (diskfs_set_readonly): Likewise. - -Mon Feb 22 04:28:56 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * io-revoke.c (diskfs_S_io_revoke): Protect the actual revocation - by blocking all other rpcs. - -Sat Feb 20 20:46:21 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * io-revoke.c (diskfs_S_io_revoke): Release NP->lock before - beginning iteration. - -1999-02-16 Roland McGrath <roland@baalperazim.frob.com> - - * io-revoke.c (diskfs_S_io_revoke): Fix typo in 1999-02-16 change. - - * init-startup.c (diskfs_startup_diskfs): Fix typo 1999-02-12 change. - -Tue Feb 16 05:31:23 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * io-revoke.c: New file. - * Makefile (IOSRCS): Add io-revoke.c. - -Sat Feb 13 04:29:29 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * peropen-make.c (diskfs_make_peropen): If there is no existing - context, then set the shadow_root iff we are a chrooted virtual - root filesystem. - -1999-02-12 Gordon Matzigkeit <gord@trick.fig.org> - - * init-startup.c (diskfs_startup_diskfs): Release the virtual - root's lock as soon as we've checked that it's a valid directory. - Ignore leading slashes in _diskfs_chroot_directory. - -Sun Jan 31 18:24:33 1999 Thomas Bushnell, BSG <tb@mit.edu> - - * file-utimes.c (diskfs_S_file_utimes): Implement new semantics - for setting to exactly present time. - -1999-01-27 Roland McGrath <roland@baalperazim.frob.com> - - * Makefile (OTHERSRCS): Add init-main.c. - -1999-01-22 Roland McGrath <roland@baalperazim.frob.com> - - * init-main.c: New file, defining new function diskfs_init_main. - * diskfs.h: Declare diskfs_init_main. - - * file-set-trans.c: Remove makedev, major, minor macro definitions. - * dir-lookup.c: Likewise. - -1999-01-01 Roland McGrath <roland@baalperazim.frob.com> - - * sync-interval.c (diskfs_set_sync_interval): Use ENOMEM, not EIEIO. - -1998-12-27 Roland McGrath <roland@baalperazim.frob.com> - - Use a struct hurd_port for the cached exec server port, - so it is properly reference-counted and locked. - * boot-start.c (diskfs_exec): Variable removed. - (diskfs_start_bootstrap): Make it a local here. - Install that port in _diskfs_exec_portcell. - (diskfs_S_fsys_init): Use _diskfs_exec_portcell instead - of diskfs_exec. - * init-init.c (_diskfs_exec_portcell): New variable. - (diskfs_init_diskfs): Initialize it. - * priv.h: Declare it. - * diskfs.h (diskfs_exec, diskfs_exec_ctl): Remove decls. - * file-exec.c (diskfs_S_file_exec): Use _diskfs_exec_portcell instead - of diskfs_exec. - - * init-completed.c: File removed (obsolete since 1996). - - * boot-start.c (diskfs_start_bootstrap): Twiddle boot-time messages. - -1998-12-27 Roland McGrath <roland@baalperazim.frob.com> - - * boot-start.c (_diskfs_boot_privports): Renamed from diskfs_*. - - * priv.h: Declare it. - * console.c (diskfs_console_stdio): Change caller. - - * file-statfs.c (diskfs_S_file_statfs): Remove __ from struct members. - -1998-12-21 Mark Kettenis <kettenis@phys.uva.nl> - - * file-statfs.c (diskfs_S_file_statfs): Initialize mount options - in statbuf. - -1998-12-27 Roland McGrath <roland@baalperazim.frob.com> - - * opts-std-startup.c (startup_options): Move -C above "Boot options:", - give it a docstring. Docstrings for --bootflags, --boot-command. - (_diskfs_boot_command): New variable. - (startup_options, parse_startup_opt): New option --boot-command, - consumes remaining args to set _diskfs_boot_command. - * priv.h: Declare _diskfs_boot_command. - * boot-start.c (diskfs_start_bootstrap): If diskfs_exec_server_task is - null, assume we are running as the boot command and have a root with - /servers/exec. - If _diskfs_boot_command is set, start that command in place of init. - If can't lookup initname, print error msg and loop to prompt. - Put a newline before "Init name" prompt. - After starting exec server, try to set active trans on /servers/exec. - (diskfs_boot_getpriv): New function: if _hurd_host_priv - is null, use fsys_getpriv on our bootstrap port. - (parent_task): New static variable, set there with fsys_getpriv call. - (diskfs_S_fsys_init): If diskfs_exec_server_task is null, don't do - anything with it; instead register parent_task as our child - and send an fsys_init to our parent on our bootstrap port. - * console.c (diskfs_console_stdio): Call diskfs_boot_privports before - get_privileged_ports if diskfs_boot_flags is set. - -1998-12-21 Roland McGrath <roland@baalperazim.frob.com> - - * file-exec.c (diskfs_S_file_exec): If exec server port is stale, try - once to look up a new one. - -1998-12-06 Roland McGrath <roland@baalperazim.frob.com> - - * boot-parse.c: File removed (it has been obsolete since 1995). - -1998-11-29 Roland McGrath <roland@baalperazim.frob.com> - - * trans-callback.c (_diskfs_translator_callback1_fn): Use size_t* - instead of int* for ARGZ_LEN arg. - -1998-11-25 Mark Kettenis <kettenis@phys.uva.nl> - - * boot-start.c (diskfs_S_fsys_init): Call _hurd_proc_init with new - args set to zero. - -Wed Aug 12 23:35:59 1998 Thomas Bushnell, BSG <tb@mit.edu> - - * file-chflags.c (diskfs_S_file_chflags): Only set - NP->dn_set_ctime if we actually set the flags. - -1998-10-26 Gordon Matzigkeit <gord@trick.fig.org> - - * init-startup.c (diskfs_startup_diskfs): Use diskfs_nput to free - the old diskfs_root_node when switching to a virtual root. - -1998-10-20 Roland McGrath <roland@baalperazim.frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup): Add braces to silence gcc - warning. - * io-identity.c (diskfs_S_io_identity): Likewise. - * opts-append-std.c (diskfs_append_std_options): Likewise. - * opts-std-runtime.c (set_opts): Likewise. - -1998-09-04 Roland McGrath <roland@baalperazim.frob.com> - - * diskfs.h (diskfs_lookup_hard, diskfs_lookup, - diskfs_set_translator, diskfs_create_symlink_hook, - diskfs_notice_dirchange, diskfs_direnter, diskfs_direnter_hard, - diskfs_dirrewrite, diskfs_dirremove, - diskfs_create_node, diskfs_enter_lookup_cache, - diskfs_check_lookup_cache, dir_rename_dir, diskfs_set_options): - Add `const' qualifier to `char *' parameters where appropriate. - * opts-set.c (diskfs_set_options): Fix defn with `const'. - * node-create.c (diskfs_create_node): Likewise. - * name-cache.c (diskfs_enter_lookup_cache): Likewise. - (diskfs_check_lookup_cache): Likewise. - * dirremove.c (diskfs_dirremove): Likewise. - * dirrewrite.c (diskfs_dirrewrite): Likewise. - * lookup.c (diskfs_lookup): Likewise. - * direnter.c (diskfs_direnter): Likewise. - * dir-renamed.c (diskfs_rename_dir): Likewise. - * dir-chg.c (diskfs_notice_dirchange): Likewise. - -1998-04-04 Roland McGrath <roland@baalperazim.frob.com> - - Add support for a "virtual root directory" specified at startup. - * priv.h (_diskfs_chroot_directory): Declare new variable. - * opts-std-startup.c (startup_options, parse_startup_opt): New - string-valued option -C/--directory/--virtual-root/--chroot sets - _diskfs_chroot_directory. - * init-startup.c (_diskfs_chroot_directory): New variable. - (diskfs_startup_diskfs): If that's set, look up the name and - warp us to that as a virtual root directory. - * fsys-getroot.c (diskfs_S_fsys_getroot): Initialize new peropen's - shadow_root_parent to null, and shadow_root to either null or, - if _diskfs_chroot_directory is set, to diskfs_root_node. - - * dir-lookup.c (diskfs_S_dir_lookup): Treat a shadow_root with null - shadow_root_parent as a "virtual root". - -1998-08-20 Roland McGrath <roland@baalperazim.frob.com> - - * fsys-options.c (diskfs_S_fsys_get_options): - fshelp_return_malloced_buffer renamed to iohelp_*. - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Likewise. - -Tue Aug 11 16:17:49 1998 Thomas Bushnell, BSG <tb@mit.edu> - - * file-chflags.c (diskfs_S_file_chflags): Set NP->dn_set_ctime. - - * file-utimes.c (diskfs_S_file_utimes): Add file notifications. - -Sun Aug 9 21:09:24 1998 Jose M. Moya <josem@gnu.org> - - * diskfs.h (struct node): Add filemod_reqs member. - (struct modreq): Rename struct dirmod to reqmod as it is used for - directory and file notifications. - (diskfs_notice_filechange): Add prototype. - * dir-chg.c (diskfs_S_dir_notice_changes): Check - nowait_dir_changed return value for errors. - (diskfs_notice_dirchange): Remove requests when the notification - fails. - * file-chg.c (diskfs_S_file_notice_changes): Implement. - (diskfs_notice_filechange): New function. - * node-make.c (diskfs_make_node): Initialize filemod_reqs. - * node-drop.c (free_modreqs): New function. - (diskfs_drop_node): Free filemod_reqs. - * file-chauthor.c (dithkfth_TH_file_chauthor): Add file - notifications. - * file-chflags.c (diskfs_S_file_chflags): Likewise. - * file-chmod.c (diskfs_S_file_chmod): Likewise. - * file-chown.c (diskfs_S_file_chown): Likewise. - * file-set-size.c (diskfs_S_file_set_size): Likewise. - * io-prenotify.c (diskfs_S_io_prenotify): Likewise. - * io-write.c (diskfs_S_io_write): Likewise. - * node-rdwr.c (diskfs_node_rdwr): Likewise. - -Sat Aug 8 17:01:58 1998 Thomas Bushnell, BSG <tb@mit.edu> - - * boot-start.c (diskfs_S_fsys_init): __vm_allocate -> vm_allocate - and __mach_task_self -> mach_task_self. Reported by Mark Kettenis - (kettenis@phys.uva.nl). - -1998-07-25 Roland McGrath <roland@baalperazim.frob.com> - - * shutdown.c (diskfs_shutdown): Sync and set the clean flag even if we - don't shut down. Thus a disk that was in use but hadn't been touched - recently needn't necessarily be checked after a system crash. - -1998-07-20 Roland McGrath <roland@baalperazim.frob.com> - - * dir-lookup.c (diskfs_S_dir_lookup: short_circuited_callback1): Fix - type of arg `argz_len' to use size_t *. - -Tue Jul 14 16:27:00 1998 Thomas Bushnell, n/BSG <tb@mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Don't require the node to be - a directory in the null pathname case. (Thus reverting one of the - changes of June 15, 1994.) - -Mon Jun 29 18:54:23 1998 Thomas Bushnell, n/BSG <tb@mit.edu> - - * lookup.c (diskfs_lookup): If NAME is empty, return an error. - -Tue May 12 12:08:35 1998 Thomas Bushnell, n/BSG <tb@mit.edu> - - * file-get-trans.c (diskfs_S_file_get_translator) [S_ISCHR || - S_ISBLK]: Free BUF after using it. Reported by Katusya Tanaka - (wyvern@pb3.so-net.ne.jp). - -Tue Sep 23 15:28:57 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * file-reparent.c (diskfs_S_file_reparent): Use diskfs_nrele - instead of protocol-violating up-tree lock. - * peropen-rele.c (diskfs_release_peropen): Likewise. - -1997-09-18 Miles Bader <miles@gnu.ai.mit.edu> - - * priv.h (fs_control_port): Declaration removed. - (_diskfs_nosuid, _diskfs_noexec): Renamed from nosuid & noexec. - * init-init.c: Prepend "_diskfs" to uses of NOSUID & NOEXEC. - * file-exec.c (diskfs_S_file_exec): Likewise. - * opts-std-startup.c (parse_startup_opt): Likewise. - * opts-std-runtime.c (set_opts): Likewise. - (OPT_EXEC_OK, OPT_SUID_OK): Rename definitions from ..._OPT. - -1997-09-16 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-append-std.c (diskfs_append_std_options): Add --no-suid and - --no-exec options. Don't deallocate ARGZ when we get an error. - -Tue Sep 16 14:37:51 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * opts-append-std.c (diskfs_append_std_options): Add --no-suid and - --no-exec when appropriate. - * priv.h (nosuid, noexec): New variables. - * init-init.c (nosuid, noexec): New variables, initialized to zero. - * file-exec.c (diskfs_S_file_exec): If noexec is on, then prohibit - all execution with EACCES. If nosuid is on, then prohibit setuid - or setgid execution by silently omitting the uid substitution. - * opts-std-startup.c (parse_startup_opt): Implement --no-suid and - --no-exec. - * opts-common.c (diskfs_common_options): Add --no-suid and - --no-exec. - * opts-std-runtime.c (struct parse_hook): Add nosuid and noexec. - (parse_opt) [cases 'S', 'E', OPT_SUID_OK, OPT_EXEC_OK] Understand - --no-suid, --no-exec, --suid-ok, and --exec-ok. - (parse_opt) [case ARGP_KEY_INIT]: Initialize H->nosuid and - H->noexec. - (OPT_SUID_OK, OPT_EXEC_OK): New macros. - (std_runtime_options): Add --suid-ok and --exec-ok. - (set_opts): Set nosuid and noexec from H->nosuid and H->noexec. - - * opts-common.c (diskfs_common_options): Rename --nosync to - --no-sync; leave --nosync as an alias. - -Wed Aug 20 14:03:41 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h: Doc fix. - - * io-map.c (diskfs_S_io_map): Cope with error return from - diskfs_get_filemap. - * rdwr-internal.c (_diskfs_rdwr_internal): Likewise. - - * disk-pager.c (service_paging_requests): New args for - ports_manage_port_operations_multithread. - * init-first.c (master_thread_function): Likewise. - -1997-08-19 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c, machdev.c: Files removed. - -Thu Jul 24 12:57:26 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (find_cache): Grammar doc fix. - -1997-07-10 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-std-runtime.c (parse_opt): Turn off synchronous mode when - setting a sync interval. - -Mon Jul 7 16:25:49 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * file-exec.c: Include <fcntl.h> instead of <fcntlbits.h>. - Suggested by Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu). - -Mon Jun 30 17:26:38 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h (diskfs_hard_readonly): New variable. - (diskfs_readonly): Doc change. - * readonly.c (diskfs_readonly): Provide initialized declaration. - (diskfs_check_readonly): If we cannot write the media and so we - switch to readonly, set diskfs_hard_readonly too. - (diskfs_set_readonly): If diskfs_hard_readonly is set, then - inhibit any attempt to clear readonly status. - -1997-06-23 Miles Bader <miles@gnu.ai.mit.edu> - - * peropen-make.c (diskfs_make_peropen): Initialize the - ROOT_PARENT, SHADOW_ROOT, and SHADOW_ROOT_PARENT fields. - -1997-06-09 Miles Bader <miles@gnu.ai.mit.edu> - - * io-stat.c (diskfs_S_io_stat): Use fshelp_translated rather than - fshelp_fetch_control. - -Fri Jun 6 11:42:14 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * Makefile (LCLHDRS): Add fhandle.h. - -Tue May 27 11:55:56 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * file-chmod.c (diskfs_S_file_chmod): Turn off S_ITRANS bits too. - -Mon Feb 24 17:22:05 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * io-identity.c (diskfs_S_io_identity): Pass CRED's shadow root - inode number to fshelp_get_identity when creating a shadow root - fsid, not INUM. - -Mon Feb 24 14:40:02 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * dir-rmdir.c (diskfs_S_dir_rmdir): Check EBUSY-when-translated - error before ENOTDIR-when-not-dir. - -Sat Feb 22 00:00:32 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * io-stat.c (diskfs_S_io_stat): Mark shadow roots with S_IROOT. - * io-identity.c (diskfs_S_io_identity): Return different fsys ids - for different shadow roots. - - * peropen-rele.c (diskfs_release_peropen): Don't deadlock if PO's - shadow_root is also it's node. - * file-reparent.c (diskfs_S_file_reparent): Don't release a - reference to any old shadow_root if it was == NODE. Don't aquire - a new reference for NODE. - -Fri Feb 21 17:12:04 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-init.c (diskfs_init_dir): Use CRED->po as LOOKUPCRED's po, - so that root detection works (and doesn't crash). - -Thu Feb 20 00:43:38 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * io-read.c (diskfs_S_io_read): Support reading from sylinks. - * dir-lookup.c (diskfs_S_dir_lookup): Allow symlinks to be opened - for O_READ. - -Thu Feb 13 19:27:16 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-rename.c (diskfs_S_dir_rename): Return EXDEV if FROMCRED and - TOCRED are in different shadow trees. - - * file-reparent.c (diskfs_S_file_reparent): New function, from - dir-reparent.c. - * dir-reparent.c: File removed. - * Makefile (FSSRCS): dir-reparent.c replaced by file-reparent.c. - -Wed Feb 12 14:23:15 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * peropen-make.c (diskfs_make_peropen): Add & use CONTEXT param. - Remove DOTDOT & DEPTH params. - * fsys-getroot.c (diskfs_S_fsys_getroot): Pass a prototype peropen - instead of the dotdotport and depth to diskfs_make_peropen. - * fsys-getfile.c (diskfs_S_fsys_getfile): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * dir-reparent.c (diskfs_S_dir_reparent): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - * boot-start.c (diskfs_start_bootstrap): Likewise. - (diskfs_S_exec_startup_get_info): Likewise. - (diskfs_execboot_fsys_startup): Likewise. - (diskfs_S_fsys_init): Likewise. - * trans-callback.c (_diskfs_translator_callback2_fn): Pass COOKIE - directly to diskfs_make_peropen instead of unpacking each arg. - * priv.h (struct diskfs_trans_callback_cookie2): Type removed. - * dir-lookup.c (diskfs_S_dir_lookup): Use DIRCRED->po as the - cookie for fshelp_fetch_root instead of a local structure. - * diskfs.h (diskfs_lookup): Remove DEPTH & NEW_DEPTH params. - * dir-lookup.c (diskfs_S_dir_lookup): Get rid of DEPTH variable. - Get rid of depth parameters to diskfs_lookup. - Deal properly with EAGAIN return from diskfs_lookup. - Replace references to dotdotport with root_parent. - * dir-unlink.c (diskfs_S_dir_unlink): Don't pass depth args to - diskfs_lookup. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-renamed.c (diskfs_rename_dir, checkpath): Likewise. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-mkdir.c (diskfs_S_dir_mkdir): Likewise. - * dir-link.c (diskfs_S_dir_link): Likewise. - * dir-init.c (diskfs_init_dir): Likewise. - * dir-clear.c (diskfs_clear_directory): Likewise. - * lookup.c (diskfs_lookup): Remove DEPTH & NEW_DEPTH params. - Check CRED->po->shadow_root for root traversals, and get rid of assert - that EAGAIN isn't returned from diskfs_lookup_hard. - * diskfs.h (struct peropen): - Add shadow_root_parent & shadow_root fields. - Removed depth field. - Rename dotdotnode field to root_parent. - * peropen-rele.c (diskfs_release_peropen): Finalize new state. - - * dir-lookup.c (diskfs_S_dir_lookup): Remove O_EXLOCK & O_SHLOCK - from FLAGS mask, now that they're included in O_HURD. - -Thu Feb 6 02:17:35 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * io-write.c (diskfs_S_io_write): Check OFF for validity and - return EINVAL if it's bogus. - * io-read.c (diskfs_S_io_read): Likewise. - - * dir-mkfile.c (diskfs_S_dir_mkfile): New file's depth is one - greater than CRED's. - - * file-getfh.c (diskfs_S_file_getfh): Implement (code from ufs). - * fsys-getfile.c (diskfs_S_fsys_getfile): Likewise. - * fhandle.h: New file. - -Wed Feb 5 16:06:26 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-reparent.c (diskfs_S_dir_reparent): Implement. - - * lookup.c (diskfs_lookup): Add DEPTH & NEW_DEPTH arguments. - Implement new fs-root detection using them. - * diskfs.h (diskfs_lookup): Add DEPTH & NEW_DEPTH arguments. - * dir-link.c (diskfs_S_dir_link): Supply DEPTH & NEW_DEPTH - arguments to diskfs_lookup. - * dir-clear.c (diskfs_clear_directory): Likewise. - * dir-init.c (diskfs_init_dir): Likewise. - * dir-renamed.c (checkpath, diskfs_rename_dir): Likewise. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-mkdir.c (diskfs_S_dir_mkdir): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-unlink.c (diskfs_S_dir_unlink): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - Add DEPTH variable. - * dir-link.c (diskfs_S_dir_link): Translate EAGAIN (meaning root's - parent) to EINVAL. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - - * diskfs.h (struct peropen): Add DEPTH field. - (diskfs_make_peropen): Add DEPTH argument. - * peropen-make.c (diskfs_make_peropen): Add & use DEPTH argument. - * boot-start.c (diskfs_start_bootstrap, - diskfs_S_exec_startup_get_info, diskfs_execboot_fsys_startup, - diskfs_S_fsys_init): Supply DEPTH argument to diskfs_make_peropen. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - * priv.h (struct diskfs_trans_callback_cookie2): New type. - * trans-callback.c (_diskfs_translator_callback2_fn): Expect - COOKIE2 to be a pointer to a struct diskfs_trans_callback_cookie2, - and use that to pass args to diskfs_make_peropen. - * fsys-getroot.c (diskfs_S_fsys_getroot): Pass new type of cookie2 to - fshelp_fetch_root, as expected by _diskfs_translator_callback2. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - -Mon Jan 20 16:18:00 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-reparent.c (diskfs_S_dir_reparent): New file. - * Makefile (FSSRCS): Add dir-reparent.c. - - * disk-pager.c (preemptor): Renamed from `preempter'; type & init - changed as well. - (diskfs_start_disk_pager): `preempter' -> `preemptor'. - * diskfs-pager.h: Doc fix. - -Tue Nov 19 18:21:12 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (struct node): Add author_tracks_uid field. - * file-chown.c (diskfs_S_file_chown): If NP->author_tracks_uid, - modify NP->dn_stat.st_author as well. - * node-create.c (diskfs_create_node): Likewise. - -Mon Nov 18 17:02:22 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (struct node): Remove istranslated field. - * io-stat.c (diskfs_S_io_stat): Set S_IATRANS & S_IROOT bits in - st_mode field of returned buffer if appropiate. - * dir-lookup.c (diskfs_S_dir_lookup): Use S_IPTRANS bit in dn_stat - st_mode field rather than istranslated field. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * node-drop.c (diskfs_drop_node): Likewise. - * trans-callback.c (_diskfs_translator_callback1_fn): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - - * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): Use - MACH_MSG_TYPE_MOVE_SEND to return *ctl, rather than COPY. - (diskfs_S_file_get_translator_cntl): Correctly test for errors - from fshelp_fetch_control. - -Fri Nov 15 14:06:16 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * protid-make.c (diskfs_finish_protid): Fix typo. - - * file-chown.c (diskfs_S_file_chown): Look for UID, not CRED in - the uid set. - - * dir-lookup.c (diskfs_S_dir_lookup): Make the unauthenticated - port correctly. - -Thu Nov 14 13:07:37 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * dir-init.c (diskfs_init_dir): New vars VEC and USER; fabricate - LOOKUPCRED to correspond to new structure definitions. - - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Declare I and - add a missing semicolon. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Eliminate PSEUDOCRED - entirely. Fix unrelated typo. - - * file-chauthor.c (dithkfth_TH_file_chauthor): Fix first arg in - call to fthhelp_ithowner. - -Tue Nov 12 22:45:07 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h: Correctly close comment. - -Thu Nov 7 14:49:19 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * io-restrict-auth.c (diskfs_S_io_restrict_auth): If CRED has - root, use the requested id sets verbatim. - -Thu Nov 7 01:03:11 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * protid-rele.c (diskfs_protid_rele): Free CRED->user. - -Wed Nov 6 17:55:17 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h (diskfs_isuid, diskfs_groupmember, diskfs_isowner, - diskfs_access, diskfs_checkdirmod): Delete functions. - * fsys-getroot.c (diskfs_S_fsys_getroot): Replace PSEUDOCRED with - a real iouser and specify that in the relevant calls. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Reworked to use - idvecs. - * file-chmod.c (diskfs_S_file_chmod): diskfs_isuid -> - idvec_contains. - * file-chown.c (diskfs_S_file_chown): Likewise. - * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise. - * file-chmod.c (diskfs_S_file_chmod): diskfs_groupmember -> - idvec_contains. - * file-chown.c (diskfs_S_file_chown): Likewise. - * node-create.c (diskfs_create_node): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): diskfs_isowner -> - fshelp_isowner. - * file-chflags.c (diskfs_S_file_chflags): Likewise. - * file-chmod.c (diskfs_S_file_chmod): Likewise. - * file-chown.c (diskfs_S_file_chown): Likewise. - * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): - Likewise. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise. - * file-utimes.c (diskfs_S_file_utimes): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * lithp.h (dithkfth_ithowner): Deleted macro. - (fthhelp_ithowner, uther): New macros. - * file-chauthor.c (dithkfth_TH_file_chauthor): dthkfth_ithowner -> - fthhelp_ithowner. - * dir-lookup.c (diskfs_S_dir_lookup): diskfs_access -> - fshelp_access. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * file-access.c (diskfs_S_file_check_access): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise (in dead code). - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * ifsock.c (diskfs_S_ifsock_getsockaddr): Likewise. - * lookup.c (diskfs_lookup): Likewise. - (diskfs_lookup): diskfs_checkdirmod -> fshelp_checkdirmod. - * dir-lookup.c (diskfs_S_dir_lookup): New arg format for - fshelp_fetch_root. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * diskfs.h, protid-make.c (diskfs_create_protid): Delete args - `uids', `gids', `nuids', and `ngids'. Replace with new arg - `user'. All callers changed. - (diskfs_finish_protid): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Use - CRED->user instead of old fields. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise. - * node-create.c (diskfs_create_node): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. Use idvec_merge - instead of idvec_merge_ids, now that it's convenient. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use new - iohelp_reauthenticate. - -Tue Nov 5 21:10:18 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h: Include <idvec.h>. - (struct protid): Delete members `uids', `gids', `nuids' and - `ngids'. New member `user'. - -Thu Oct 24 15:56:30 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-std-startup.c (store_argp_children, startup_argp_children): - New variables. - (store_argp_parents, startup_argp_children): Variable removed. - (diskfs_store_startup_argp): Use STORE_ARGP_CHILDREN instead of - STORE_ARGP_PARENTS. - (diskfs_startup_argp): Use STARTUP_ARGP_CHILDREN instead of - STARTUP_ARGP_PARENTS. - * opts-std-runtime.c (children): New variable. - (parents): Variable removed. - (diskfs_std_runtime_argp): Use CHILDREN instead of PARENTS. - -Mon Oct 21 21:54:34 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * diskfs.h: Add extern inline protection. - * diskfs.c: New file. - * Makefile (OTHERSRCS): Add diskfs.c. - -Fri Oct 11 21:55:45 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Temporarily add O_EXLOCK and - O_SHLOCK to the set of retained flags, until they get added to O_HURD. - Turn off OPENONLY_STATE_MODES bits in the flags we pass to - diskfs_make_peropen, not everything *but* them! - * priv.h (OPENONLY_STATE_MODES): Add O_EXLOCK & O_SHLOCK. - -Thu Oct 10 17:22:06 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Frob lock in NEWPI->po, not PO. - Free NEWPI if we get an error trying to lock it. - <sys/file.h>: New include. - -Thu Oct 10 17:11:05 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Implement O_SHLOCK and - O_EXLOCK directly here. - -Thu Oct 10 10:53:28 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * peropen-rele.c (diskfs_release_peropen): Before freeing PO, - release any user lock it's holding. - <sys/file.h>: New include. - -Tue Oct 8 15:01:32 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * ifsock.c (diskfs_S_ifsock_getsockaddr): Write permission governs - access to sockets, not read permission. - -Mon Oct 7 14:50:04 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-rmdir.c (diskfs_S_dir_rmdir): Return ENOTDIR if NP isn't a dir. - -Tue Sep 24 23:51:37 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (_print_version): Follow version string with newline. - -Thu Sep 19 17:59:37 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * Makefile (HURDLIBS): Add store. - -Wed Sep 18 15:02:31 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (_print_version): Change to use new version - format from the coding standards. - - * opts-std-runtime.c (std_runtime_options): Change --remount to - --update (keep --remount as a deprecated alias). - <argp.h>: New include. - * opts-append-std.c <stdio.h>: New include. - * dir-lookup.c <stdio.h>: New include. - -Fri Sep 13 19:15:45 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Free ARGZ if - diskfs_append_args returns an error. - * fsys-options.c (diskfs_S_fsys_get_options): Likewise. - -1996-09-12 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (diskfs_disk_name): New declaration. - * readonly.c (diskfs_check_readonly): Use DISKFS_DISK_NAME - instead of DISKFS_DEVICE_ARG. - * init-startup.c (_diskfs_init_completed): Likewise. - -Wed Sep 11 17:25:14 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * disk-pager.c (diskfs_start_disk_pager): Renamed from - setup_disk_pager. - Add PAGER_BUCKET, IMAGE, and SIZE arguments. - Pass in PAGER_BUCKET to thread routine, and don't create it. - (diskfs_disk_pager): Renamed from disk_pager. - (disk_image): Variable removed. - (pager_bucket): Declaration removed. - (service_paging_requests): Get PAGER_BUCKET from argument. - * diskfs-pager.h (diskfs_start_disk_pager): Renamed from - disk_pager_setup. - Add PAGER_BUCKET, IMAGE, and SIZE arguments. - (diskfs_disk_pager): Renamed from disk_pager. - (disk_image, pager_bucket): Declarations removed. - -Mon Sep 9 10:54:58 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * fsys-options.c (diskfs_S_fsys_get_options): Initialize ARGZ & - ARGZ_LEN to the program name, and call diskfs_append_args instead - of diskfs_get_options. - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Likewise. - <argz.h>: New include. - * diskfs.h (diskfs_append_args): Renamed from diskfs_get_options. - * opts-get.c (diskfs_append_args): Likewise. - * opts-std-startup.c <hurd/store.h>: New include. - (store_argp_parents): Use diskfs_startup_argp, not - diskfs_std_startup_argp. - * Makefile (libdiskfs.so): Depend on libstore.so. - - * opts-version.c <argp.h>, <stdio.h>: New includes. - (_print_version): Test diskfs_extra_version against 0 too. - * io-version.c <stdio.h>: New include. - (diskfs_S_io_server_version): Use snprintf instead of sprintf. - -Sun Sep 8 18:19:50 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h <argp.h>: Include removed. - (struct argp): New (incomplete) declaration. - (diskfs_get_file_device, diskfs_get_mach_device): Declarations removed. - (diskfs_startup_argp): Renamed from diskfs_std_startup_argp. - (diskfs_store_startup_argp): Renamed from - diskfs_std_device_startup_argp. - (diskfs_device_arg, diskfs_use_mach_device, diskfs_device_open, - diskfs_device, diskfs_device_name, diskfs_device_start, - diskfs_device_size, diskfs_device_block_size, - diskfs_log2_device_block_size, diskfs_log2_device_blocks_per_page, - diskfs_device_write_sync, diskfs_device_read_sync): Declarations - removed. - * opts-std-startup.c (diskfs_use_mach_device, diskfs_device_arg, - dev_startup_options, dev_startup_argp_parents, - diskfs_std_device_startup_argp): Variables removed. - (parse_dev_startup_opt): Function removed. - (diskfs_startup_argp): Renamed from diskfs_std_startup_argp. - * Makefile (OTHERSRCS): Remove filedev.c, machdev.c, dev-open.c, - dev-io.c, & dev-globals.c. - -Thu Sep 12 16:22:27 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * Makefile: New variable. - (libdiskfs.so): Delete special depedency. - -Thu Sep 5 11:13:54 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * io-version.c (diskfs_S_io_server_version): Only fill in - SERVER_NAME; ignore the rest. - - * diskfs.h (diskfs_major_version, diskfs_minor_version, - diskfs_edit_version): Delete variables. - (diskfs_server_version, diskfs_extra_version): New variables. - * boot-start.c (diskfs_S_fsys_init): Register version from - diskfs_server_version; pass empty string as release. - * extra-version.c: New file. - * Makefile (OTHERSRCS): Add extra-version.c. - * opts-version.c: Include <version.h>. - (diskfs_extra_version): Delete special declaration. - (_print_version): Use the user's provided version number, and also - give it our (libdiskfs) version number. - -Tue Sep 3 10:48:05 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (diskfs_enter_lookup_cache): Cache `.' and `..' - just like other nodes. - (diskfs_check_lookup_cache): If we get a cache hit on `..', then - do the inverse locking semantic, and only return success if things - are stable around the call. - -Fri Aug 30 21:57:18 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * lookup.c (cache_misses): New variable, to find out what sort of - thing all the cache misses are. - (cm_lock): New variable. - (diskfs_lookup): Keep track of cache misses in cache_misses. - - * name-cache.c (MAXCACHE): 200 now. After experimentation, this - appears to be a pretty good value. Very little benefit after - this. - -Fri Aug 30 20:41:27 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (struct lookup_cache): Delete member `hits'. - New member `stati'. - (diskfs_enter_lookup_cache): Don't initialize C->hits. - (find_cache): Set C->stati before returning. - (build_partial): Delete function. - (diskfs_check_lookup_cache): Delete calls to build_partial. - Register all statistics through register_neg_hit, - register_pos_hit, and register_miss. - (MAXCACHE): 2000 now. - -Wed Aug 28 12:20:53 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (MAXCACHE): 500 for now. - -Mon Aug 26 15:10:55 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (MAXCACHE): Increase to 50000. - (struct lookup_cache): New member `hits'. - (statistics): Name struct type `struct stats'. - (diskfs_enter_lookup_cache): Initialize C->hits. - (PARTIAL_THRESH, NPARTIALS): New macros. - (partial_stats): New variable. - (build_partial): New function. - (diskfs_check_lookup_cache): Call build_partial after statistics - frobbing. - - * name-cache.c (diskfs_check_lookup_cache): Increment members of - statistics while still holding CACHE_LOCK. - -Fri Aug 16 18:23:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * name-cache.c (diskfs_check_lookup_cache): Keep track of negative - hits properly. - * lookup.c (diskfs_lookup): On LOOKUPs that fail to find the node, - enter a negative cache entry. - -Thu Aug 15 16:07:23 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (diskfs_extra_version): New (weak) reference. - (_print_version): Use DISKFS_EXTRA_VERSION. Tweak edit version. - Fix type of EV. - -Thu Aug 15 16:38:41 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * io-identity.c (diskfs_S_io_identity): Don't hold lock around - call to fshelp_get_identity. - -Mon Aug 12 15:54:27 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (_print_version): Print the edit version too if - it's non-zero. - -Thu Aug 8 18:18:09 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * readonly.c: Include <error.h>. - -Wed Aug 7 13:53:56 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * readonly.c (diskfs_check_readonly): If we get an error from - diskfs_hypermetadata, then switch to readonly. - * diskfs.h (diskfs_set_hypermetadata): Require an error code return. - * dev-io.c (diskfs_device_write_sync): If we get D_READ_ONLY, then - return EROFS to the caller instead of EIO. - - * node-create.c (diskfs_create_node): New files always copy GID - from their parent; that's NetBSD's behavior, and it's good enough - for me. - -Thu Aug 1 17:24:08 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): Don't - diskfs_nput NP; we've never created a reference. Just unlock it. - (And bother to lock it in the first place.) - -Sat Jul 27 20:05:17 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * lookup.c (diskfs_lookup): Don't nput *NP if we didn't find a file. - - * init-startup.c (diskfs_S_startup_dosync): Clean up after ourselves. - Don't sync if DISKFS_READONLY. - * file-syncfs.c (diskfs_S_file_syncfs): Don't sync if DISKFS_READONLY. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise. - * sync-interval.c (periodic_sync): Likewise. - * shutdown.c (diskfs_shutdown): Likewise. - -Fri Jul 26 14:52:23 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Unlock NP before we attempt to - do setuid/setgid (which otherwise can deadlock during port reauth). - Pay attention to the error code returned by fshelp_exec_reauth, - and don't make NEWPI if it's an error. - Initialize ERR. - -Tue Jul 23 16:05:55 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (_print_version): Make return type void. - -Fri Jul 19 21:19:42 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c (diskfs_get_file_device): INTS[3] contains the number - of runs, not the number of offsets (which is 2*NUM_RUNS). - Don't deallocate the device port we've fetched. - - * opts-std-startup.c (startup_options, parse_startup_opt): Remove - the --version option, which is handled elsewhere now. - -Thu Jul 18 23:05:56 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * protid-make.c (diskfs_start_protid): Use noinstall version of - ports_create_port. - (diskfs_finish_protid): Install port right into port set here. - -Mon Jul 15 21:37:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * diskfs.h (diskfs_checkdirmod): diskfs_isowner returns error or - zero, so invert sense of tests. - - * lookup.c (diskfs_lookup): If we get an error from - diskfs_checkdirmod, diskfs_nput the node we picked up; the caller - won't want it. - - * dir-renamed.c (diskfs_rename_dir): When unlocking FDP, only do - it if we FDP != TDP. Also, only do step two (changing .. in the - directory being moved) if FDP != TDP. - -Sat Jul 13 20:05:27 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Repeat - diskfs_start_protid and auth_server_authenticate for as we get - EINTR. - -Sun Jul 7 21:07:53 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * boot-start.c (diskfs_S_fsys_init): Don't use unsafe MOVE_SEND in - call to exec_init. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Don't use - unsafe MOVE_SEND in auth_server_authenticate. - -Sun Jul 7 10:27:37 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c (_print_version): Include HURD_RELEASE in default. - -Sat Jul 6 16:27:01 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-version.c: New file. - * Makefile (OTHERSRCS): Add opts-version.c. - -Sat Jul 6 13:32:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): If this might be a special - symlink, then truncate it even though NP->allocsize might be - clear. - -Wed Jul 3 11:22:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * io-identity.c (diskfs_S_io_identity): Fetch identity using - fshelp_get_identity rather than creating it ourselves. - * diskfs.h (struct node): Remove member `identity'. - * node-drop.c (diskfs_drop_node): Don't deallocate NP->identity. - * node-make.c (diskfs_make_node): Don't initialize NP->identity. - -Thu Jun 27 10:07:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * init-startup.c (diskfs_startup_diskfs): Don't call - diskfs_readonly_changed here anymore. - - * disk-pager.c (disk_pager_setup): Check diskfs_readonly variable - instead of calling diskfs_check_readonly. - - * Makefile (LCLHDRS): Add diskfs-pager.h. - -Tue Jun 25 21:55:24 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-std-runtime.c (parse_opt): Add hair to share arg parsing - state between two parsers that use the same parse_opt function at - the same time. - -Mon Jun 24 14:55:50 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * init-startup.c (diskfs_S_startup_dosync): Don't crash the - filesystem, just do a clean sync. - * node-drop.c (diskfs_drop_node): Call diskfs_check_readonly - before making mods. - * priv.h (_diskfs_diskdirty): New variable. - * diskfs.h (diskfs_check_readonly): New function. - * readonly.c (_diskfs_diskdirty): New var. - (diskfs_check_readonly): New function. - (diskfs_set_readonly): After clean sync, clear _diskfs_diskdirty. - * rdwr-internal.c (_diskfs_rdwr_internal): Use - diskfs_check_readonly instead of diskfs_readonly. - * node-create.c (diskfs_create_node): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise. - * disk-pager.c (disk_pager_setup): Likewise. - * dir-unlink.c (diskfs_S_dir_unlink): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * dir-mkdir.c (diskfs_S_dir_mkdir): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - * dir-link.c (diskfs_S_dir_link): Likewise. - * conch-fetch.c (iohelp_fetch_shared_data): Likewise. - * remount.c (diskfs_remount): Likewise. - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): If - auth_server_authenticate fails, then fill with empty IDs. We - can't permit interruption, because this is a simpleroutine. - - * file-set-trans.c (diskfs_S_file_set_translator): Validate rdev - change before making it. - * file-chflags.c (diskfs_S_file_chflags): Validate flags change - before making it. - * lithp.h (dithkfth_validate_author_change): New macro. - * file-chauthor.c (dithkfth_TH_file_chauthor): Validate new author - before changing it. - * node-create.c (diskfs_create_node): Validate group change before - making it. - * file-chown.c (diskfs_S_file_chown): Likewise. - * node-create.c (diskfs_create_node): Validate mode change before - making it. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise - * file-chmod.c (diskfs_S_file_chmod): Likewise. - * node-create.c (diskfs_creade_node): Validate owner change before - making it. - * file-chown.c (diskfs_S_file_chown): Likewise. - * Makefile (OTHERSRCS): Add validate-mode.c, validate-group.c, - validate-author.c, validate-flags.c, validate-rdev.c, and - validate-owner.c. - * validate-mode.c, validate-group.c, validate-author.c, - validate-flags.c, validate-rdev.c, validate-owner.c: New files. - * diskfs.h (diskfs_validate_mode_change, - diskfs_validate_owner_change, diskfs_validate_group_change, - diskfs_validate_author_change, diskfs_validate_flags_change, - diskfs_validate_rdev_change): New decls. - -Fri Jun 21 00:18:16 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * fsys-options.c (diskfs_S_fsys_get_options): Use - fshelp_return_malloced_buffer to setup the return data. - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): Likewise. - * opts-set.c (diskfs_set_options): Supply INPUT arg to - fshelp_set_options. - - * opts-append-std.c (diskfs_append_std_options): Use argz_add - instead of rolling our own. Deal with errors. - <argz.h>: New include. - -Wed Jun 19 21:57:46 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * init-startup.c (diskfs_S_startup_dosync): Pass HANDLE to - ports_lookup_port. Declare ERR. - - * opts-get.c (diskfs_get_options): Call diskfs_append_std_options to - do most of the work. - * opts-append-std.c: New file. - * opts-set.c: New file (old version renamed). - * opts-std-runtime.c: Renamed from opts-set.c. - (diskfs_set_options): Function removed. - (struct parse_hook): New type. - (set_opts, parse_opt): New functions. - (common_argp, parents, diskfs_std_runtime_argp): New variables. - * diskfs.h (diskfs_parse_runtime_options): Decl removed. - (diskfs_std_startup_argp): Renamed from diskfs_startup_argp, now a - structure decl, not a pointer decl. - (diskfs_std_device_startup_argp): Renamed from - diskfs_device_startup_argp, now a structure decl, not a pointer - decl. - (diskfs_set_options): Update decl (now takes argz & argz_len). - (diskfs_runtime_arg): New declaration. - (diskfs_std_runtime_argp, diskfs_append_std_options): New declarations. - * opts-runtime-parse.c, opts-runtime-unparse.c: Files removed. - * opts-std-startup.c (parse_dev_startup_opt): Use argp_error. - (diskfs_startup_arg, diskfs_device_startup_arg): Variables removed. - (diskfs_std_startup_argp): Renamed from startup_argp, exported. - (diskfs_std_device_startup_argp): Renamed from dev_startup_argp, - exported. - * fsys-options.c (diskfs_S_fsys_set_options): Don't split - arguments, just call diskfs_set_options with what we got. - * opts-runtime.c: New file. - * Makefile (OTHERSRCS): Add opts-std-runtime.c, opts-append-std.c, - opts-runtime.c. Remove opts-runtime-parse.c, opts-runtime-unparse.c - -Thu Jun 13 10:05:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * Makefile (MIGSTUBS): Add startup_notifyServer.o. - * init-startup.c (diskfs_S_startup_dosync): Uncomment function. - * demuxer.c (diskfs_demuxer): Call diskfs_startup_notify_server. - * init-startup.c (_diskfs_init_completed): NOTIFY doesn't need - deallocation. - - * boot-start.c (diskfs_S_fsys_init): Build version string - correctly. - -Tue May 14 11:14:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * Makefile (OTHERSRCS): Remove init-completed.c. - - * node-drop.c (diskfs_drop_node): Fix typo. - -Sat May 11 01:11:19 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-std-startup.c (parse_dev_startup_opt, parse_startup_opt): - Use ARGP_ERR_UNKNOWN instead of EINVAL. - * opts-set.c (diskfs_set_options): Likewise. - -Fri May 10 17:15:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * io-identity.c: New file. - * Makefile (IOSRCS): Add io-identity.c. - * diskfs.h (diskfs_fsys_identity): New variable. - (struct node): New member `identity'. - * init-init.c (diskfs_fsys_identity): New variable. - (diskfs_init_diskfs): Initialize diskfs_fsys_identity. - * node-make.c (diskfs_make_node): Initialize NP->identity. - * node-drop.c (diskfs_drop_node): Free NP->identity if it's been - allocated. - -Thu May 9 11:52:52 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * protid-make.c (diskfs_make_protid): Delete function. - * diskfs.h (diskfs_make_protid): Delete declaration. - - * init-startup.c (_diskfs_init_completed): Don't need to insert - right any more now that it's a poly arg. - Provide helpful name to init. - - * fsys-options.c (diskfs_S_fsys_get_options): Accept and ignore - replyport parameters. - - * file-sync.c (diskfs_S_file_sync): Accept and ignore new parm - OMITMETADATA. - - * priv.h: ioserver.h -> iohelp.h. - * diskfs.h: Likewise. - * file-sync.c (diskfs_S_file_sync): s/ioserver/iohelp/g - * io-prenotify.c (diskfs_S_io_prenotify): Likewise. - * io-get-conch.c (diskfs_S_io_get_conch): Likewise. - * io-modes-off.c (diskfs_S_io_clear_some_openmodes): Likewise. - * io-modes-on.c (diskfs_S_io_set_some_openmodes): Likewise. - * io-modes-set.c (diskfs_S_io_set_all_openmodes): Likewise. - * io-read.c (diskfs_S_io_read): Likewise. - * io-readable.c (diskfs_S_io_readable): Likewise. - * io-rel-conch.c (diskfs_S_io_release_conch): Likewise. - * io-seek.c (diskfs_S_io_seek): Likewise. - * io-stat.c (diskfs_S_io_stat): Likewise. - * io-write.c (diskfs_S_io_write): Likewise. - * conch-fetch.c (iohelp_fetch_shared_data): Likewise. - * conch-set.c (iohelp_put_shared_data): Likewise. - * node-make.c (diskfs_make_node): Likewise. - * node-rdwr.c (diskfs_node_rdwr): Likewise. - * Makefile (libdiskfs.so): Likewise. - - * dir-rename.c (diskfs_S_dir_rename): Understand new parm EXCL and - do the right thing with it. - * dir-link.c (diskfs_S_dir_link): Likewise. - -Thu May 9 12:12:41 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Don't pass CRED - port in auth_server_authenticate. - - * io-select.c (diskfs_S_io_select): Removed TAG arg. - -Thu May 9 11:42:53 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c (diskfs_get_file_device): Deallocate most things we - got back from file_get_storage_info even if we didn't get an error. - - * filedev.c (diskfs_get_file_device): Fix type of DATA & _DATA. - BLOCKSIZE -> BLOCK_SIZE. Copy name from DATA, not DEV_NAME_BUF. - -Mon May 6 20:12:34 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c (diskfs_get_file_device): Enable new version. - -Fri May 3 15:55:44 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c [0] (diskfs_get_file_device): Rewrite to use new interface. - -Tue Apr 30 14:39:06 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * init-startup.c: Include <string.h> and <hurd/startup.h>. - (diskfs_startup_diskfs): If not bootstrap filesystem, call - _diskfs_init_completed here. - (diskfs_S_startup_dosync): New function (commented out). - (_diskfs_init_completed): New function. - * init-completed.c: Delete file. - * init-init.c (diskfs_shutdown_notification_class): New variable. - (diskfs_init_diskfs): Initialize diskfs_shutdown_notification_class. - * diskfs.h (diskfs_shutdown_notification_class): New variable. - * boot-start.c (diskfs_S_fsys_init): diskfs_init_completed -> - _diskfs_init_completed. - * priv.h (_diskfs_init_completed): New declaration. - * diskfs.h (diskfs_init_completed): Delete function. - -Mon Apr 29 15:42:23 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * name-cache.c (struct lookup_cache): Add HDR, remove NEXT & PREV. - (lookup_cache): Change type to struct cacheq. - (mru_cache, lru_cache): Variables removed. - (make_mru, make_lru, init_lookup_cache): Functions removed. - (find_cache, diskfs_purge_lookup_cache, - diskfs_check_lookup_cache): Use cacheq functions. - -Sun Apr 28 15:22:30 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * protid-make.c: Add obsolescence link warning. - -Tue Apr 23 11:05:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): Don't do anything special for - socket naming points. - * Makefile (OTHERSRCS): Add dead-name.c. - * dead-name.c: New file. - * ifsock.c (diskfs_S_ifsock_getsockaddr): Request notification for - new SOCKADDR; count that notification as a reference. - -Fri Apr 12 15:56:48 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * name-cache.c (diskfs_enter_lookup_cache): Never cache . or .. - -Thu Apr 11 17:59:18 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * console.c: Include <hurd.h>. - - * Makefile (fsys-MIGSFLAGS, fs-MIGSFLAGS, io-MIGSFLAGS, - ifsock-MIGSFLAGS): Reference fsmutations.h in $(srcdir). - - * boot-start.c (diskfs_start_bootstrap): Print helpful message - before doing anything else. - -Wed Apr 10 16:47:21 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * name-cache.c (struct lookup_cache): Add NEXT & PREV fields. - Rename LEN back to NAME_LEN. - (lru_cache, mru_cache): New variables. - (first_cache, last_cache): Variables removed. - (make_mru, make_lru, find_cache, init_lookup_cache): New functions. - (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache, - diskfs_check_lookup_cache): Rewrite to use the linked list. Deal - with negative entries. - -Tue Apr 9 12:59:02 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * lookup.c (diskfs_lookup): Deal with DS or NP being 0. - * name-cache.c (diskfs_check_lookup_cache): Correctly handle the - case where the lookup returns DIR itself. - - * diskfs.h (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache, - diskfs_check_lookup_cache): Renamed from versions without `lookup_'. - * name-cache.c (diskfs_enter_lookup_cache, diskfs_purge_lookup_cache, - diskfs_check_lookup_cache): Likewise. - * direnter.c (diskfs_direnter): Similarly, rename use. - * dirrewrite.c (diskfs_dirrewrite): Likewise. - * dirremove.c (diskfs_dirremove): Likewise. - * lookup.c (diskfs_lookup): Likewise. - -Sun Apr 7 15:29:02 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * name-cache.c (diskfs_check_cache): Declare I. - (struct lookup_cache, diskfs_enter_cache): Change NAMELEN field to LEN. - -Wed Apr 3 16:02:45 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): Don't call - _diskfs_purge_cache_deletion. - * name-cache.c (_diskfs_purge_cache_deletion): Delete function. - - * diskfs.h (diskfs_cached_lookup): New declaration. - (struct node): New member `cache_id'. - -Tue Apr 2 12:50:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * name-cache.c (diskfs_enter_cache): Don't set LC->next->prev if - LC->next is null. - (diskfs_purge_cache): If freeing node at LOOKUP_CACHE_TAIL, bump - LOOKUP_CACHE_TAIL back itself too. - (_diskfs_purge_cache_deletion): Likewise. - - * lookup.c (diskfs_lookup): When doing diskfs_checkdirmod check, - don't return success when we should return ENOENT, just because - checkdirmod won. Also enter successful lookups for CREATE or - LOOKUP in the name cache. - -Fri Mar 29 13:57:37 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * io-map-cntl.c: Initialize shared page magic number. - -Mon Mar 25 09:30:31 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * name-cache.c (statistics): New variable. - (diskfs_check_cache): Keep statistics on cache performance. - -Fri Mar 22 17:51:51 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-runtime-parse.c (diskfs_parse_runtime_options): Supply new - argument to argp_parse. - -Fri Mar 22 15:44:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * lookup.c (diskfs_lookup): Dereference NP in call to - diskfs_checkdirmod. - * direnter.c (diskfs_direnter): Don't fall off end. - * diskfs.h (diskfs_enter_cache, diskfs_purge_cache, - diskfs_check_cache): Add declarations. - * dir-rename.c (diskfs_S_dir_rename): Use new args for - diskfs_dirrewrite and diskfs_dirremove. - * dir-renamed.c (diskfs_rename_dir): Likewise. - * dir-clear.c (diskfs_clear_directory): Use new diskfs_dirremove - args. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-unlink.c (diskfs_S_dir_unlink): Likewise. - - * Makefile (OTHERSRCS): Add direnter.c, dirrewrite.c, dirremove.c, - and lookup.c. - -Wed Mar 20 14:34:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * diskfs.h (diskfs_lookup_hard): Remove mention of ENOTDIR and - EACCES errors. - * diskfs.h (diskfs_null_dirstat): New function. - * dir-lookup.c (diskfs_S_dir_lookup): Don't check cache here. - * dir-unlink.c (diskfs_S_dir_unlink): Don't frob cache here. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-clear.c (diskfs_clear_directory): Likewise. - * node-create.c (diskfs_create_node): Likewise. - * dir-renamed.c (diskfs_rename_dir): Likewise. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-link.c (diskfs_S_dir_link): Likewise. - * direnter.c: New file. - * dirrewrite.c: Likewise. - * dirremove.c: Likewise. - * lookup.c: Likewise. - * diskfs.h (diskfs_lookup): Renamed to be diskfs_lookup_hard. - (diskfs_direnter): Renamed to be diskfs_direnter_hard. - (diskfs_dirrewrite): Renamed to be diskfs_dirrewrite_hard. - (diskfs_dirremove): Renamed to be diskfs_dirremove_hard. - (diskfs_lookup, diskfs_direnter, diskfs_dirrewrite, diskfs_dirremove): - -Tue Mar 19 14:55:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * name-cache.c: New file. - * Makefile (OTHERSRCS): Add name-cache.c. - * dir-lookup.c (diskfs_S_dir_lookup): Check cache before normal - diskfs_lookup call. - * node-drop.c (diskfs_drop_node): Call - _diskfs_purge_cache_deletion before releasing node structure with - diskfs_node_norefs. - * dir-clear.c (diskfs_clear_directory): Call - diskfs_purge_cache_node before diskfs_dirremove. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-renamed.c (diskfs_rename_dir): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - * dir-unlink.c (diskfs_S_dir_unlink): Likewise. - * dir-init.c (diskfs_init_dir): Doc fix. - * dir-rename.c (diskfs_S_dir_rename): Call diskfs_purge_cache - before diskfs_dirrewrite for old node. - * dir-renamed.c (diskfs_rename_dir): Likewise. - * node-create.c (diskfs_create_node): Call diskfs_enter_cache if - diskfs_direnter is successful. - * dir-link.c (diskfs_S_dir_link): Likewise. - * dir-rename.c (diskfs_S_dir_rename): Call diskfs_enter_cache if - diskfs_direnter/diskfs_dirrewrite is successful. - * dir-renamed.c (diskfs_rename_dir): Likewise. - -Fri Mar 15 23:10:57 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Don't leak a send right to - the anonymous handle on DNP when calling fetch_root. - -Tue Mar 12 14:36:10 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): Deallocate ref - on CONTROL when we are done with it. - -Thu Mar 7 16:45:02 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * readonly.c (diskfs_set_readonly): Don't sleep(1) after syncing. - -Thu Feb 29 14:29:20 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * Makefile (OTHERSRCS): Change `opts-runtime-def.c' to - `opts-runtime-parse.c'. Add `opts-runtime-unparse.c'. - -Wed Feb 21 06:10:05 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): Add EROFS check. - -Sun Feb 18 00:08:27 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * init-init.c (diskfs_init_diskfs): Use maptime_map. - * node-times.c (diskfs_set_node_times): Use maptime_read. - -Fri Feb 16 13:48:08 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-runtime-def.c (diskfs_parse_runtime_options): STANDARD_ARGP - is const. - -Thu Feb 15 16:59:04 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * diskfs.h (diskfs_nput): It's not valid to touch *NP (by - `mutex_unlock (&np->lock);') after we have called - diskfs_drop_node. So don't do it in that case. - -Wed Feb 7 22:42:22 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * diskfs.h (diskfs_nput): Before bumping NP->references (which - precedes diskfs_try_dropping_softrefs), *lock* - diskfs_node_refcnt_lock, not mutant unlock. - (diskfs_nrele): Likewise. - -Wed Feb 7 16:22:31 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (diskfs_parse_runtime_options): Make STANDARD_ARGP const. - (diskfs_startup_argp, diskfs_device_startup_argp): Make const. - * opts-common.c (diskfs_common_options): Make const. - * opts-std-startup.c (startup_options, dev_startup_options, - dev_start_argp_parents, dev_startup_argp, startup_common_argp, - startup_argp_parents, startup_argp, diskfs_startup_argp): Make const. - * opts-set.c (std_runtime_options): Make const. - (diskfs_set_options): Make argp structures const. - -Wed Feb 7 13:39:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Revert last change. - -Tue Feb 6 15:56:04 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Make the new peropen we'll - pass as dotdot to the fetch_root with the same flags as DIRCRED->po. - -Wed Jan 31 00:27:10 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * node-rdwr.c (diskfs_node_rdwr): Handle null AMTREAD. - -Tue Jan 30 21:20:13 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * fsys-options.c (diskfs_S_fsys_set_options): Use - rwlock_writer_lock instead of rwlock_reader_lock in DO_CHILDREN case. - -Tue Jan 30 15:03:35 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * peropen-rele.c (diskfs_release_peropen): Free dotdotport when - deallocating peropen. - -Wed Jan 24 18:14:28 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Use diskfs_create_protid instead - of diskfs_make_protid, and deal with an error return. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * io-duplicate.c (diskfs_S_io_duplicate): Likewise. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise. - * trans-callback.c (_diskfs_translator_callback2_fn): Likewise. - * boot-start.c (diskfs_start_bootstrap, diskfs_S_exec_startup_get_info, - diskfs_execboot_fsys_startup, diskfs_S_fsys_init): Likewise. - * protid-make.c (diskfs_start_protid): Return an error now, and use - ports_create_port instead of ports_allocate_port. - (diskfs_create_protid): New function. - (diskfs_make_protid): Call diskfs_create_protid. - * diskfs.h (diskfs_start_protid): Update declaration. - (diskfs_create_protid): New declaration. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use new version of - diskfs_start_protid. - * file-getcontrol.c (diskfs_S_file_getcontrol): Use ports_create_port - instead of ports_allocate_port. - * boot-start.c (start_execserver, diskfs_start_bootstrap): Likewise. - * init-startup.c (diskfs_startup_diskfs): Likewise. - * sync-interval.c (diskfs_set_sync_interval): Likewise. - (periodic_sync): Pass in the MSG_ID arg to ports_begin_rpc, and - deal with any error returned. - - * readonly.c (diskfs_set_readonly): Deal with ports_inhibit_class_rpcs - returning an error. - * remount.c (diskfs_remount): Likewise. - * shutdown.c (diskfs_shutdown): Likewise. - * sync-interval.c (diskfs_set_sync_interval): Likewise. - - * dir-readdir.c: Include <fcntl.h>. - -Tue Jan 23 16:28:47 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * opts-std-startup.c (startup_options): Put boot options in a - separate group with a header. - -Thu Jan 18 14:05:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * dir-readdir.c (diskfs_S_dir_readdir): Require read permission - before succeeding. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Deallocate ref to dotdot - after diskfs_make_peropen, because the latter does not eat a - reference. - - * fsys-getroot.c (diskfs_S_fsys_getroot): In symlink case, use - MOVE_SEND to return the dotdot port to the user. - -Thu Jan 11 22:09:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * diskfs-pager.h (struct disk_image_user): New type. - (diskfs_catch_exception, diskfs_end_catch_exception): Use it to - maintain a linked list of catchers instead of just one. - -Sat Jan 6 11:49:02 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile (installhdrs): Add diskfs-pager.h. - (OTHERSRCS): Add disk-pager.c. - -Fri Jan 5 17:06:42 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * io-write.c: Return errors regardless of *AMT--writes are all or - nothing. - * io-read.c: Return errors regardless of *DATALEN--reads are all or - nothing. - -Thu Jan 4 16:11:35 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * disk-pager.c, diskfs-pager.h: New files. - * exc.c: File removed. - * Makefile (OTHERSRCS): Remove exc.c. - * diskfs.h (diskfs_catch_exception, diskfs_end_catch_exception): - Macros removed. - (diskfs_register_memory_fault_area, - diskfs_unregister_memory_fault_area): Decls removed. - - * diskfs.h: Use size_t instead of int for amounts in - diskfs_node_rdwr prototype. - * node-rdwr.c (diskfs_node_rdwr): Pass AMTREAD read/write to - _diskfs_rdwr_internal, instead of assuming it wrote the whole amount. - Update the node if anything was transferred, regardless of ERR. - * rdwr-internal.c (_diskfs_rdwr_internal): Rewritten using - pager_memcpy. - Fix types of args: OFFSET to off_t, make AMT read/write size_t *. - * priv.h: Fix args in _diskfs_rdwr_internal prototype. - * io-write.c: Pass AMT read/write to _diskfs_rdwr_internal, and - return success if any bytes were written. - * io-read.c: Likewise. - -Mon Jan 1 15:45:33 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Use fshelp_exec_reauth(). - (setid, scan_ids): Functions deleted. - -Thu Dec 28 14:21:42 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Always reauth the proc port, - as exec does not do it, even in the secure case. Set the proc's - owner too. - - * file-exec.c (setid): Don't touch the return params unless we succeed. - Add SETID parameter, and just copy old into new unless it's set. - Handle the NOLDGENIDS == 0 case correctly. - (diskfs_S_file_exec): Use the new setid() properly. Make sure that - {GEN,AUX}{UIDS,GIDS} are always in a state where they can be freed. - -Thu Dec 28 00:24:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * priv.h (end_using_protid_port): Don't calls ports_port_deref if - CRED is null. - -Wed Dec 27 17:32:21 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * file-exec.c (setid): New function. - (scan_ids): Moved out of diskfs_S_file_exec. - (diskfs_S_file_exec): Move duplicated code into setid(). Make the - bogus auth port case work correctly. Deleted old ifdefed-out code. - Enable setuid code. - - * exc.c (diskfs_register_memory_fault_area): Register both - preempter1 and preempter2 in REC instead of preempter1 twice. - -Sat Dec 23 14:49:22 1995 Michael I. Bushnell p/BSG <mib@gnu.ai.mit.edu> - - * exc.c: Entire file rewritten to use libc signal preemption - facility. - -Wed Dec 20 14:49:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_S_fsys_init): Call proc_mark_exec on - EXECPROCESS. - -Tue Dec 19 13:19:19 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Better attempt at - setuid/setgid execution; still not entirely right, but mostly so. - Will move this code to libfshelp before turning it on. - -Thu Dec 14 15:51:19 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * diskfs.h (diskfs_checkdirmod): Correctly return error code for - failure, not 1. - -Mon Dec 4 17:07:20 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * dir-unlink.c (diskfs_S_dir_unlink): Don't call fsys_goaway until - we've released our lock. - -Mon Dec 4 16:57:28 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-unlink.c (diskfs_S_dir_unlink): Delete vestigial fetch_control. - -Tue Nov 21 13:54:14 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * rdwr-internal.c (_diskfs_rdwr_internal): Declare PROT volatile. - - * init-first.c (master_thread_function): Declare to be `static - any_t'. - - * fsys-options.c: Include <string.h>. - - * diskfs.h (diskfs_get_options): Bother providing declaration. - - * file-get-fs-opts.c: Include <string.h>. - (diskfs_S_file_get_fs_options): Dereference DATA_LEN in call to - vm_allocate. - -Sat Nov 18 09:01:28 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_S_exec_startup_get_info): Renamed from - diskfs_S_exec_startup, slightly different protocol. Unused exec - server stubs removed. - * Makefile (MIGSTUBS): Replaced execServer.o with exec_startupServer.o. - -Mon Nov 13 17:13:40 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * demuxer.c (diskfs_demuxer): - diskfs_exec_server --> diskfs_exec_startup_server. - -Mon Nov 13 16:28:27 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * file-lock-stat.c (diskfs_S_file_lock_stat): Lock around reads to - make sure they are mutually consistent. - - * io-readable.c (diskfs_S_io_readable): Set *AMOUNT to zero if - filepointer is past the end of the file. - -Thu Nov 9 12:33:53 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * dir-link.c (diskfs_S_dir_link): Now that args are swapped, - deallocate port ref on FILECRED instead of DIRCRED. - -Sun Nov 5 10:49:26 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * Makefile (OTHERSRCS): Add opts-get.c. - (FSSRCS): Add file-get-fs-opts.c. - * file-get-fs-opts.c (diskfs_S_file_get_fs_options): New function. - * fsys-options.c (diskfs_S_fsys_get_options): New function. - * opts-get.c (diskfs_get_options): New function. - - * sync-interval.c (diskfs_sync_interval): New variable. - (diskfs_set_sync_interval): Set DISKFS_SYNC_INTERVAL. - -Sat Nov 4 23:17:50 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * file-get-trans.c (diskfs_S_file_get_translator): Initialize ERROR. - - * trans-callback.c (_diskfs_translator_callback2_fn): - UNDERLYING_TYPE should be a pointer. As should the UIDS & GIDS - args to diskfs_make_protid. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Pass both callback args - to fshelp_fetch_root. - - * filedev.c (diskfs_get_file_device): Give FLAGS argument to - file_get_storage_info. - - * dir-lookup.c (diskfs_S_dir_lookup): Fix various typos. - (short_circuited_callback1): Dereference ARGZ & ARGZ_LEN. - Include <hurd/paths.h> - -Wed Nov 1 15:56:45 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Add new callback arg to - fshelp_fetch_root call. Change short_circuited_callback1 to - reflect the split into two callbacks (we use the global diskfs - callback for the other_). - * trans-callback.c (_diskfs_translator_callback1_fn, - _diskfs_translator_callback2_fn): New functions, replacing the - single original. - (_diskfs_translator_callback1, _diskfs_translator_callback2): - New variables, replacing the single original. - * priv.h (_diskfs_translator_callback1, _diskfs_translator_callback2): - Declare. - - * boot-start.c (diskfs_execboot_fsys_startup): Add FLAGS arg; use. - * fsys-startup.c (diskfs_S_fsys_startup): Ditto. - * init-startup.c (diskfs_startup_diskfs): Ditto. - * diskfs.h (diskfs_startup_diskfs, diskfs_execboot_fsys_startup): - Add FLAGS arg. - -Mon Oct 30 13:20:12 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Move code for starting - short-circuited translators here, from _diskfs_translator_callback_fn. - Inline code from node_is_translated. - (node_is_translated): Function removed. - (major, minor): New macros -- temporarily here until libc exports them. - -Thu Oct 26 18:41:23 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * trans-callback.c (_diskfs_translator_callback_fn): Deal with - short-circuited translators. - * dir-lookup.c (node_is_translated): New function. - (diskfs_S_dir_lookup): Use node_is_translated() instead of - np->istranslated to see whether NP has a passive translator. - - * file-set-trans.c (diskfs_S_file_set_translator): Add missing else. - Use makedev macro instead of doing it by hand. - (makedev): New macro -- temporarily here until libc exports one. - -Thu Oct 19 12:43:47 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * fsys-options.c (diskfs_S_fsys_set_options): Only hold - DISKFS_FSYS_LOCK for writing while setting our own options; we - hold it for reading while setting our children's. - - * rdwr-internal.c (_diskfs_rdwr_internal): Get rid of CRED argument. - * priv.h (_diskfs_rdwr_internal): Ditto. - * node-rdwr.c (diskfs_node_rdwr): Ditto. - * io-write.c (diskfs_S_io_write): Ditto. - * io-read.c (diskfs_S_io_read): Ditto. - -Wed Oct 18 15:52:53 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (diskfs_get_filemap): Add prot parameter. - (diskfs_max_user_pager_prot): New declaration. - * rdwr-internal.c (_diskfs_rdwr_internal): Add argument CRED, and - use it to decide how to setup the mapped i/o. - * io-write.c (diskfs_S_io_write): Pass CRED to _diskfs_rdwr_internal. - * io-read.c (diskfs_S_io_read): Ditto. - * node-rdwr.c (diskfs_node_rdwr): Ditto. - * io-map.c (diskfs_S_io_map): Pass the appropiate vm protection to - diskfs_get_filemap. If this node isn't O_RDWR, only return the - appropiate memobj. - Include <fcntl.h>. - * priv.h (_diskfs_rdwr_internal): Add cred parameter. - - * boot-start.c (diskfs_execboot_fsys_startup): Open exec's - realnode read-only for now, since we know it doesn't matter and - having gratuitously writable nodes around prevents us from - starting up or going read-only. - (diskfs_S_fsys_init): Don't make the cwdir/crdir right with O_WRITE. - * trans-callback.c (_diskfs_translator_callback_fn): Ditto for - other translators. The fsys_startup interface should change very - soon and make this irrelevant. - - * readonly.c (diskfs_set_readonly): Return EBUSY if necessary. - Add hack to try and work around pagers-can't-wait bug. - - * opts-common.c (diskfs_common_options): New variable. - * priv.h (diskfs_common_options): New declaration. - * opts-std-startup.c (startup_options): Remove options common to - both runtime and startup. - (startup_common_argp, startup_argp_parents): New variables. - (startup_argp): Include parents. - * opts-set.c (std_runtime_options): Remove options common to - both runtime and startup. - (diskfs_set_options): Use the common options. - * Makefile (OTHERSRCS): Add opts-common.c. - - * diskfs.h (diskfs_fsys_lock): Change to a struct rwlock. - Include <rwlock.h> - * shutdown.c (diskfs_fsys_lock): Now a rwlock. - (diskfs_shutdown): Lock DISKFS_FSYS_LOCK for writing. - * fsys-getroot.c (diskfs_S_fsys_getroot): Hold DISKFS_FSYS_LOCK - for reading. - * sync-interval.c (periodic_sync): Hold DISKFS_FSYS_LOCK for - reading while syncing. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Ditto. - * fsys-options.c (diskfs_S_fsys_set_options): Hold DISKS_FSYS_LOCK - for writing. - Dereference PT even when a child filesystem returns an error. - * opts-set.c (diskfs_set_options): Don't hold DISKS_FSYS_LOCK (our - caller should). - - * machdev.c (diskfs_get_mach_device): SIZE is in blocks. - -Wed Oct 18 14:00:58 1995 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Return EACCES for attempts to - execute a directory. Dike out totally bogus set[ug]id code. - Bother to lock NP around critical section. - -Tue Oct 17 14:32:41 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * init-startup.c (diskfs_startup_diskfs): Call diskfs_readonly_changed - if we're starting up writable. - * diskfs.h (diskfs_readonly_changed, diskfs_reload_global_state, - diskfs_node_reload, diskfs_set_readonly, diskfs_remount): New - declarations. - (diskfs_main_request_loop): Declaration removed. - * Makefile (OTHERSRCS): Add readonly.c, remount.c. - * readonly.c (diskfs_set_readonly): New function. - * remount.c (diskfs_remount): New function. - - * opts-set.c (diskfs_set_options): Rework readonly transition & - remounting. Hold diskfs_fsys_lock. - - * diskfs.h (diskfs_fsys_lock): Renamed from diskfs_shutdown_lock. - * shutdown.c (diskfs_shutdown): diskfs_shutdown_lock --> - diskfs_fsys_lock. - -Fri Oct 13 14:51:42 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (diskfs_start_bootstrap): Get rid of ARGV argument. - (diskfs_argv): New declaration. - * boot-start.c (saved_argv): Variable removed. - (diskfs_argv): New variable. Should get set by default arg parser. - (diskfs_start_bootstrap): Get rid of ARGV argument. - (diskfs_S_fsys_init): Use DISKFS_ARGV instead of SAVED_ARGV. - * opts-std-startup.c (parse_startup_opt): Set DISKFS_ARGV. - * init-startup.c (diskfs_startup_diskfs): Call diskfs_start_bootstrap - if we're the bootstrap file system. - - * dev-globals.c (diskfs_device, diskfs_device_name, - diskfs_device_start, diskfs_device_size, diskfs_device_block_size, - diskfs_log2_device_block_size, diskfs_log2_device_blocks_per_page): - New variables. - * dev-io.c (diskfs_device_write_sync, diskfs_device_write_sync): - New functions. - * dev-open.c (diskfs_device_open): New function, new file. - * diskfs.h (diskfs_device, diskfs_device_name, - diskfs_device_start, diskfs_device_size, diskfs_device_block_size, - diskfs_log2_device_block_size, diskfs_log2_device_blocks_per_page, - diskfs_device_write_sync, diskfs_device_write_sync, - diskfs_device_open, diskfs_console_stdio): New declarations. - * console.c (diskfs_console_stdio): New function. - * Makefile (OTHERSRCS): Add dev-open.c, dev-io.c, dev-globals.c, - console.c. - * opts-std-startup.c (diskfs_use_mach_device, diskfs_device_arg, - dev_startup_options, dev_startup_argp_parents, dev_startup_argp, - diskfs_device_startup_argp): New variables. - (parse_dev_startup_opt): New function. - -Thu Oct 12 16:11:22 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * boot-start.c (diskfs_execboot_fsys_startup): Fix args to dir_lookup. - Declare PATHBUF and RETRY. - - * boot-start.c (diskfs_S_fsys_init): Put the contents of - diskfs_init_completed in here, freeing that routine for user-use. - - * init-completed.c (diskfs_init_completed): Now empty. - - * opts-set.c (std_runtime_options): Renamed from long_options, - convert to argp format. - (SHORT_OPTIONS): Removed. - (diskfs_set_options): Converted to use argp. - * diskfs.h (diskfs_parse_runtime_options, - diskfs_standard_startup_argp): Use argp, not options. - Include <argp.h> instead of <options.h>. - * opts-runtime-def.c (diskfs_parse_runtime_options): Use argp - instead of options. - * opts-std-startup.c (std_startup_options): Renamed from - std_long_options; converted to argp format. - (std_startup_argp): Renamed from std_startp_argp, converted argp fmt. - (diskfs_standard_startup_argp): Renamed from - diskfs_standard_startup_options. - -Thu Oct 12 03:25:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_execboot_fsys_startup): Use dir_lookup - instead of hurd_file_name_lookup to open /servers/exec. - -Mon Oct 9 03:42:49 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_execboot_fsys_startup): Pass back a port to - /servers/exec in *REAL. - -Sat Oct 7 20:51:06 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * init-completed.c (diskfs_init_completed): New function. - * diskfs.h (diskfs_init_completed): must --> may. - Add necessary includes. - - * Makefile (OTHERSRCS): Add init-completed.c. - -Sat Oct 7 05:07:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile (libdiskfs.so): Depend on libpager, libioserver, - libfshelp, libthreads. - -Fri Oct 6 17:26:51 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * diskfs.h (diskfs_get_file_device, diskfs_get_mach_device): New funcs. - (diskfs_boot_flags): New variable. - (diskfs_bootflags, diskfs_bootflagarg): Variables deleted. - - * boot-start.c (diskfs_S_fsys_getpriv): Add the port type parameters. - - * Makefile (MIGSFLAGS): Variable deleted. - (fs-MIGSFLAGS, io-MIGSFLAGS, ifsock-MIGSFLAGS): New variables. - (fsys-MIGSFLAGS): Also import fsmutations.h. - - * dir-link.c (diskfs_S_dir_link): Swap first two arguments. - - * filedev.c (diskfs_get_file_device): Use new block_size return - value from file_get_storage_info. - -Thu Oct 5 15:10:34 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * Makefile (OTHERSRCS): Remove boot-parse.c; add filedev.c & machdev.c. - * diskfs.h (diskfs_host_priv, diskfs_master_device): Variables deleted. - (diskfs_parse_bootargs): Function deleted. - (diskfs_init_diskfs): Now returns error_t. - * init-init.c (diskfs_init_diskfs): Always use get_privileged_ports. - Now return error_t. - * machdev.c (diskfs_get_mach_device): Use get_privileged_ports - instead of diskfs_master_device. - * boot-start.c (diskfs_S_fsys_getpriv): Use get_privileged_ports - to get the privileged ports. - (diskfs_start_bootstrap): Use diskfs_boot_flags instead of - diskfs_bootflagarg. - (diskfs_start_bootstrap, start_execserver): Look for flags - directly in diskfs_boot_flags, instead of using the old - diskfs_bootflags. - * boot-start.c (diskfs_S_exec_startup): Use get_console to get the - console device. - (get_console): New function. - * opts-std-startup.c (OPT_BOOTFLAGS, OPT_EXEC_SERVER_TASK, - OPT_HOST_PRIV_PORT, OPT_DEVICE_MASTER_PORT): New defines. - (std_long_opts, parse_std_startup_opt): Add the - --device-master-port, --host-priv-port, --exec-server-task, and - --bootflags options. - -Thu Oct 5 00:46:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * sync-interval.c (periodic_sync_lock): Variable removed. - (diskfs_set_sync_interval): Use ports_inhibit_port_rpcs on `pi' - instead of the spin lock. - (periodic_sync): Don't use the lock. - Put ports_begin_rpc before check of periodic_sync_thread. - -Wed Sep 27 20:11:09 1995 Miles Bader <miles@gnu.ai.mit.edu> - - * filedev.c (diskfs_get_file_device): New file, new function. - * machdev.c (diskfs_get_mach_device): New file, new function. - -Mon Sep 18 14:21:29 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * io-pathconf.c (diskfs_S_io_pathconf): Renamed from - file_pathconf.c:diskfs_S_file_pathconf. - * Makefile (FSSRCS): Deleted file-pathconf.c. - (IOSRCS): Added io-pathconf.c. - -Sun Sep 17 18:04:10 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_S_exec_startup): Don't pass an argument - string. Set *FLAGS to EXEC_STACK_ARGS. - - * file-set-size.c: Renamed from file-trunate.c. - (diskfs_S_file_set_size): Renamed from diskfs_s_file_truncate. - If SIZE exceeds the file size, extend the file. - * Makefile (FSSRCS): Rename file-truncate.c to file-set-size.c. - -Sat Sep 16 13:10:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * ourfs_notify.defs: New file. - * Makefile (DIST_FILES): Added ourfs_notify.defs. - (ourfs_notify_U.h ourfs_notifyUser.c, ourfs_notify.defs): Targets - removed. - -Wed Sep 13 12:36:26 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu> - - * diskfs.h (diskfs_lookup): Doc fix. - * dir-clear.c (diskfs_clear_directory): Set the fourth arg in - REMOVE lookup calls in accord with change in rules for the lookup - call. - -Wed Sep 6 11:30:24 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * demuxer.c (diskfs_demuxer): Use ports_notify_server and - ports_interrupt_server instead of our own versions. - * Makefile (SRCS): Removed $(NOTIFYSRCS) and $(INTSRCS). - (NOTIFYSRCS, INTSRCS, notify-MIGSFLAGS): Removed. - (MIGSTUBS): Removed notifyServer.o and interruptServer.o. - * interrupt.c: File deleted. - -Tue Aug 29 14:22:58 1995 Michael I. Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu> - - * io-select.c (diskfs_S_io_select): Don't check open modes or - return EBADF. - -Fri Aug 25 15:02:19 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * Makefile (FSYSSRCS): Add fsys-forward.c. - -Fri Aug 25 09:44:43 1995 Michael I. Bushnell, p/BSG <mib@mole.gnu.ai.mit.edu> - - * file-truncate.c (diskfs_S_file_truncate): Bother to check the - return value of diskfs_truncate. - -Wed Aug 23 14:39:07 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * Makefile (REMHDRS): Removed. - Rules dealing with ../lib removed. - -Sat Jul 29 10:34:38 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * ifsock.c (diskfs_S_ifsock_getsockaddr): Don't loop infinitely if - we fail to get a reasonable PF_LOCAL server. - -Fri Jul 28 14:59:45 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * ifsock.c (diskfs_S_ifsock_getsockaddr): Try to restart the - PF_LOCAL server if it dies. - - * node-drop.c (diskfs_drop_node): Don't actually drop the node if - it is a socket naming point, unless it also has no links. - -Sat Jul 22 13:54:48 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-getcontrol.c (diskfs_S_file_getcontrol): Fix typo. - * boot-start.c (start_execserver): Likewise. - -Fri Jul 21 12:37:36 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * trans-callback.c (_diskfs_translator_callback_fn): Use correct - sense of diskfs_readonly flag. - - * boot-start.c (diskfs_start_bootstrap): Free initial reference - created by diskfs_make_protid. - (diskfs_S_exec_startup): Likewise. - (diskfs_S_fsys_init): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. (Two places.) - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * file-exec.c (diskfs_S_file_exec): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * io-duplicate.c (diskfs_S_io_duplicate): Likewise. - * io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise. - * trans-callback.c (_diskfs_translator_callback_fn): Likewise. - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Free initial - reference created by diskfs_start_protid. - - * boot-start.c (diskfs_start_bootstrap): Free initial reference - created by ports_allocate_port. - (start_execserver): Likewise. - * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise. - * init-startup.c (diskfs_startup_diskfs): Likewise. - - * dir-lookup.c (diskfs_S_dir_lookup): Examine the active - translator on NP, not on diskfs_root_node, to see if translator - usage is necessary. - - * file-set-trans.c (diskfs_S_file_set_translator): Only validate - PASSIVELEN if PASSIVE is set. - -Tue Jul 18 16:12:20 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * init-first.c (thread_timeout, server_timeout): New vars. - (THREAD_TIMEOUT, SERVER_TIMEOUT): Delete macros. - (master_thread_function): Use vars instead of macros. - - * file-get-trans.c (diskfs_S_file_get_translator): Conform to new - memory semantic of diskfs_get_translator. - -Wed Jul 12 16:39:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * shutdown.c (diskfs_shutdown): Call ports_resume_class_rpcs for - diskfs_protid_class before return EBUSY. - -Thu Jul 6 15:34:59 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * Makefile (ourfs_notify_U.h ourfs_notifyUser.c): Use - ourfs_notify.defs instead of directly out of the include - directory. - (ourfs_notify.defs): New target. - - * Makefile: Removed dependencies that are now automatically - generated. - -Mon Jun 26 15:38:07 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * fsys-goaway.c (diskfs_S_fsys_goaway): Include "fsys_S.h" and - "fsys_reply_U.h". New parms REPLY and REPLY_TYPE. Send - fsys_goaway reply message before exit. - * Makefile (fsys-MIGSFLAGS): New variable. - * fsys-startup.c (diskfs_S_fsys_startup): New parms REPLY and - REPLYTYPE. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * fsys-options.c (diskfs_S_fsys_set_options): Likewise. - * boot-start.c (diskfs_S_fsys_getpriv): Likewise. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise. - * fsys-getfile.c (diskfs_S_fsys_getfile): Include "fsys_S.h". New - parms REPLY and REPLYTYPE. - - * sync-interval.c (periodic_sync_thread, periodic_sync_lock): - Declare static. - (control): Delete var. - (pi): New var. - (diskfs_set_sync_interval): Set PI instead of CONTROL. - (periodic_sync): Do sync by hand; use ports routines around it - properly. - - * shutdown.c (diskfs_shutdown): Fix parentheses on bitwise tests. - - * fsys-goaway.c (diskfs_S_fsys_goaway): If diskfs_shutdown returns - zero, then exit here. - * shutdown.c (diskfs_shutdown): Don't actually exit; return zero - instead. - * init-first.c (master_thread_function): Exit when shutdown - returns zero. - - * file-set-trans.c (diskfs_S_file_set_translator): Ignore harmless - errors from fsys_goaway. - * shutdown.c (diskfs_shutdown): Ignore harmless errors from - fsys_goaway. - * fsys-options.c (diskfs_S_fsys_set_options/helper): Ignore - harmless errors from fsys_set_options. - - * file-set-trans.c (diskfs_S_file_set_translator): Fix parentheses - on first active EXCL check. - -Fri Jun 23 15:43:55 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * fsys-options.c (diskfs_S_fsys_set_options) [helper]: Unlock NP - around fsys call. - * file-syncfs.c (diskfs_S_file_syncfs) [helper]: Likewise. - * fsys-syncfs.c (diskfs_S_fsys_syncfs) [helper]: Likewise. - * shutdown.c (diskfs_shutdown) [helper]: Likewise. - -Thu Jun 22 14:48:46 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * priv.h (_diskfs_translator_callback): Must be extern to force - inclusion of trans-callback.c. - - * dir-lookup.c (diskfs_S_dir_lookup): Correctly parethenize - O_NOTRANS flags test. - -Tue Jun 20 11:52:24 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * node-make.c (diskfs_make_node): Fix function name - fshelp_init_transbox -> fshelp_transbox_init. - - * file-syncfs.c: Include <hurd/fsys.h>. - * fsys-syncfs.c: Likewise. - - * file-syncfs.c (diskfs_S_file_syncfs) [helper]: First arg to - fshelp_fetch_control should be &NP->transbox, not NP. - * fsys-options.c (diskfs_S_fsys_set_options) [helper]: Likewise. - * fsys-syncfs.c (diskfs_S_fsys_syncfs) [helper]: Likewise. - * shutdown.c (diskfs_shutdown) [helper]: Likewise. - - * file-set-trans.c (diskfs_S_file_set_translator): Remove - assignment from if test. - * node-rdwr.c (diskfs_node_rdwr): Likewise. - -Mon Jun 19 16:32:12 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * diskfs.h (diskfs_node_iterate): New (user-provided) function. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Use diskfs_node_iterate - instead of diskfs_sync_translators. - * file-syncfs.c (diskfs_S_file_syncfs): Likewise. - * shutdown.c (diskfs_shutdown): Likewise. - * fsys-options.c (diskfs_S_fsys_set_options): Likewise. - - * dir-rmdir.c (diskfs_S_dir_rmdir): Don't attempt anything for - translated directories here; just return EBUSY. - * dir-unlink.c (diskfs_S_dir_unlink): Don't do massively - complicated fsys_goaway. Instead, call it at the end (but only if - this was the last link) and ignore errors. - - * fsys-startup.c (diskfs_S_fsys_startup): Strip out support for - translators; fshelp now does that itself. - - * file-set-trans.c: Include <hurd/fsys.h>. - - * file-set-trans.c (diskfs_S_file_set_translator): Use new - translator interface throughout. - * dir-lookup.c (diskfs_S_dir_lookup): Use new translator startup - interface. - -Fri Jun 16 17:42:44 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): Use - fshelp_fetch_control instead of old interface. - -Wed Jun 14 15:52:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): Call fshelp_drop_transbox - instead of fshelp_kill_translator; do it *after* the truncate. - * node-make.c (diskfs_make_node): Initialize TRANSBOX member using - new function. Drop initialization of TRANSLATOR member. - * fsys-getroot.c (diskfs_S_fsys_getroot): Use new translator - startup interface. - * Makefile (OTHERSRCS): Removed trans-start.c, trans-destroy.c, - and trans-sync.c. Added trans-callback.c. - * trans-start.c, trans-destroy,c, trans-sync.c: Deleted files. - * trans-callback.c: New file. - * priv.h (_diskfs_translator_callback): New declaration. - * diskfs.h (diskfs_start_translator, diskfs_destroy_translator, - diskfs_sync_translators): - Delete declarations. - (struct node): Replace TRANSLATOR member with new TRANSBOX member. - (diskfs_get_translator): Specify new calling interface. - -Fri Jun 9 15:48:30 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * rdwr-internal.c (_diskfs_rdwr_internal): Cast __VM_PAGE_SIZE in - comparisen. - * io-write.c (diskfs_S_io_write): Cast DATALEN to off_t in - comparisons. - * io-read.c (diskfs_S_io_read): Cast MAKREAD to off_t in - comparison. - * io-prenotify.c (diskfs_S_io_prenotify): Cast END to off_t in - comparison. - * file-get-trans.c (diskfs_S_file_get_translator): Declare - variable `buflen' and various variables `len' to be unsigned. - * file-exec.c (diskfs_S_file_exec): Declare both variables `i' to - be unsigned int. - - * io-async-icky.c (diskfs_S_io_get_icky_async_id): Validate CRED. - - * interrupt.c (diskfs_S_interrupt_operation): Bother to implement. - - * init-init.c (diskfs_init_diskfs): Pass null second argument in - calls to ports_create_class. - - * fsys-options.c (diskfs_S_fsys_set_options): Bother validating - FSYS and implementing DO_CHILDREN. - - * dir-lookup.c (diskfs_S_dir_lookup): Initialize GIDS, NUIDS, and - NGIDS to avoid warning. - - * boot-start.c: Provide unused attributes where appropriate. - * file-chg.c (diskfs_S_file_notice_changes): Mark parameters as - unused. - * file-getfh.c (diskfs_S_file_getfh): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise. - * fsys-getfile.c (diskfs_S_fsys_getfile): Likewise. - * init-init.c (_diskfs_control_clean): Likewise. - * io-async.c (diskfs_S_io_async): Likewise. - * notify-stubs.c: Likewise. - * file-pathconf.c (diskfs_S_file_pathconf): Declare NAME to be - unused. - * io-select.c (diskfs_S_io_select): Declare ATTRIBUTE unused. - * io-stubs.c (diskfs_S_io_postnotify): Declare parms START and END - unused. - * io-prenotify.c (diskfs_S_io_prenotify): Declare parm START - unused. - - * diskfs.h (diskfs_transboot_class): Delete var. - * init-init.c (diskfs_transboot_class): Delete var. - (diskfs_init_diskfs): Don't initialize it. - - * dir-rename.c (diskfs_S_dir_rename): After renaming directory, - synchronize relevant state if DISKFS_SYNCHRONOUS. - -Thu Jun 8 19:01:25 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * diskfs.h (diskfs_pager_users): New function. - * shutdown.c (diskfs_shutdown): Rewrote to use new ports interface - adequately. - -Tue Jun 6 13:50:13 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * init-first.c (diskfs_spawn_first_thread): Call our own - thread function instead of the ports one directly. - (master_thread_function): New function. - - * notify-nosenders.c (diskfs_do_seqnos_mach_notify_no_senders): - Don't help support pagers here at all. - * demuxer.c (diskfs_demuxer): Don't call pager_demuxer. - - * boot-start.c (diskfs_start_bootstrap): Use new args for - ports_allocate_port. - (start_execserver): Likewise. - * init-startup.c (diskfs_startup_diskfs): Likewise. - * protid-make.c (diskfs_start_protid): Likewise. - * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise. - * sync-interval.c (diskfs_set_sync_interval): Likewise. - - * boot-start.c (diskfs_S_exec_startup): Use ports_lookup_port and - ports_port_deref instead of ports_check_port_type and - ports_done_with_port. - (diskfs_execboot_fsys_startup): Likewise. - (diskfs_S_fsys_init): Likewise. - (diskfs_S_fsys_getpriv): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - * fsys-goaway.c (diskfs_S_fsys_goaway): Likewise - * fsys-startup.c (diskfs_S_fsys_startup): Likewise. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise. - * notify-nosenders.c (diskfs_do_seqnos_mach_notify_no_senders): - Likewise. - * priv.h (begin_using_protid_port): Use ports_lookup_port. - (end_using_protid_port): Use ports_port_deref. - - * trans-start.c (fshelp_transboot_port_type): Deleted var. - * priv.h (enum porttype): Delete. - * demuxer.c: Renamed from ports-demuxer.c. - (diskfs_demuxer): Renamed from ports_demuxer. - * init-init.c (diskfs_protid_class, diskfs_transboot_class, - diskfs_control_class, diskfs_initboot_class, - diskfs_execboot_class, diskfs_port_bucket): New vars. - (diskfs_init_diskfs): Don't call libports_initialize. - Initialize diskfs_protid_class, diskfs_transboot_class, - diskfs_control_class, diskfs_initboot_class, - diskfs_execboot_class, and diskfs_port_bucket. - * diskfs.h: (diskfs_shutdown_soft_ports): Deleted decl. - (ports_demuxer): Deleted decl. - (diskfs_demuxer): New decl. - (diskfs_protid_class, diskfs_transboot_class, diskfs_control_class, - diskfs_initboot_class,diskfs_execboot_class, diskfs_port_bucket): - New decls. - * ports-noports.c, ports-clean.c, ports-soft.c, ports-idle.c, - ports-consts.c, pager-consts.c, init-loop.c: Deleted files. - * Makefile (OTHERSRCS): Deleted ports-noports.c, ports-clean.c, - ports-soft.c, ports-consts, pager-consts.c, init-loop.c, and - ports-idle.c. - Replace ports-demuxer.c with demuxer.c. - -Mon May 22 13:52:16 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * opts-set.c (diskfs_set_options): Don't fall through to the error - case from the 's' one! - Use ARG instead of the global OPTARG. - -Sat May 20 01:11:05 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * file-getcontrol.c (diskfs_S_file_getcontrol): Unlock - _diskfs_control_lock lock instead of locking it again! - -Fri May 19 21:22:14 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * opts-set.c (diskfs_set_options): New function in new file. - * opts-runtime-def.c (diskfs_parse_runtime_options): Ditto. - * opts-std-startup.c (diskfs_standard_startup_options): New - exported variable in new file. - * fsys-options.c (diskfs_S_fsys_set_options): Extract the argument - vector and call diskfs_set_options. - * diskfs.h: (diskfs_standard_startup_options): Declare new variable. - (diskfs_set_options): Declare new function. - (diskfs_parse_runtime_options): Ditto. - Include <options.h> (currently in ../lib). - * Makefile (OTHERSRCS): Add opts-set.c, opts-std-startup.c, and - opts-runtime-def.c. - (OBJS): Add argz.o & options.o. - (REMHDRS): Add argz.h & options.h. - -Tue May 16 17:36:46 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * init-first.c (diskfs_spawn_first_thread): Don't start syncing here. - * init-startup.c (diskfs_startup_diskfs): Do it here instead. - -Mon May 15 15:18:25 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * diskfs.h (diskfs_set_options): Declare. - * fsys-options.c (diskfs_S_fsys_set_options): Extract argc & argv, - and call diskfs_set_options. - * def-set-options.c: New file (contains a default diskfs_set_options). - - * Makefile (OBJS): Add argz.o (from ../lib). It shouldn't hurt to - have this in libdiskfs, since we need it... - (CPPFLAGS): Add -I../lib, to get argz.h, + $(CPPFLAGS-$(notdir $<)) - Set the vpath for %.c to ../lib, so we get argz.c. - (OTHERSRCS): Add def-set-options.c. - -Sat May 13 03:08:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_execserver_task): New variable. - (diskfs_parse_bootargs): Take a third integer arg before the - device name, our name for the task port of the exec server, which - is loaded and ready to run but suspended. - * boot-start.c (start_execserver): Don't create and load a task; - the exec server file is no longer linked into the filesystem. - Just set the bootstrap port of diskfs_execserver_task and resume - it. - -Fri May 12 16:22:33 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * fsys-readonly.c (diskfs_S_fsys_set_options, - diskfs_S_fsys_mod_readonly): Change from mod_readonly to - set_options. This file is now actually called fsys-options.c. - * Makefile (FSYSSRCS): Rename fsys-readonly.c to fsys-options.c. - - * sync-interval.c (diskfs_set_sync_interval): New function (in a - new file) that establishes a thread to periodically sync the - filesystem. - * Makefile (OTHERSRCS): Add sync-interval.c and sync-default.c. - * diskfs.h: Add declarations of diskfs_set_sync_interval and - diskfs_default_sync_interval. - - * init-first.c (diskfs_spawn_first_thread): Start background syncing. - * sync-default.c (diskfs_default_sync_interval): A new variable - that defines a default initial sync interval. - -Fri May 12 15:45:43 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * io-read.c (diskfs_S_io_read): If the offset is past the end of - the file, then return EOF. - -Thu Apr 27 20:01:16 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): Deal cleanly with errors in - diskfs_truncate. - - * diskfs.h (diskfs_nrele, diskfs_nput): We need to hold a real - reference around the call to diskfs_try_dropping_softrefs, because - that's a user-supplied routine that might itself rely on the - reference counting system. - -Thu Apr 20 18:54:26 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * node-create.c (diskfs_create_node): Return EROFS if diskfs_readonly. - -Tue Apr 4 20:20:40 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * dir-unlink.c (diskfs_S_dir_unlink): Do fsys_goaway for - translated nodes being unlinked. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise. - -Tue Apr 4 18:33:35 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): However, replacing *MAKE_SEND* - with COPY_SEND just doesn't work... - -Tue Apr 4 14:31:51 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Using MOVE_SEND in call to - exec_exec loses, because it consumes a reference, which will be - consumed again by mach_msg_server if we return an error. So use - COPY_SEND instead, and deallocate the rights ourselves only when - we are to return success. - -Fri Mar 31 12:25:57 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): Only destroy - existing active translator if ACTIVE_FLAGS will change it. If the - existing active translator is provided then don't do anything. - -Fri Mar 17 11:36:40 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * io-stat.c (diskfs_S_io_stat): Typo. - - * diskfs.h: Back out changes to protid and associated permission - checking functions. - * file-chmod.c (diskfs_S_file_chmod): Likewise. - * file-chown.c (diskfs_S_file_chown): Likewise. - * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise. - - * dir-link.c (diskfs_S_dir_link): Fix typo. - - * diskfs.h (_diskfs_idcheckdirmod): `diskfs_hasuid' -> - diskfs_idhasuid. - * priv.h (CHANGE_NODE_FIELD): Remove trailing space on backslashed - line. - - * diskfs.h (_diskfs_idcheckdirmod): `cred' -> `id'. - (diskfs_idhasgid): Likewise. - - * dir-clear.c (diskfs_clear_directory): Don't do - diskfs_synchronous here. - * dir-init.c (diskfs_init_dir): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Repair implementation of - diskfs_syncronous. - * dir-renamed.c (diskfs_rename_dir): If we are synchronous, - sync the one node our parent doesn't have access to. - * dir-mkdir.c (diskfs_S_dir_mkdir): Implement diskfs_synchronous. - * dir-mkfile.c (diskfs_S_dir_mkfile): Likewise. - * dir-lookup.c (diskfs_S_dir_lookup): Likewise. - * io-read.c (diskfs_S_io_read): Likewise. - * fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise. - * node-drop.c (diskfs_drop_node): Likewise. - * node-rdwr.c (diskfs_node_rdwr): Likewise. - -Wed Mar 15 11:54:12 1995 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * conch-fetch.c (ioserver_fetch_shared_data): Implement - diskfs_synchronous. - * dir-clear.c (diskfs_clear_directory): Likewise. - * dir-init.c (diskfs_init_dir): Likewise. - * dir-renamed.c (diskfs_rename_dir): Likewise. - -Wed Mar 8 16:36:04 1995 Michael I Bushnell <mib@duality.gnu.ai.mit.edu> - - * diskfs.h (diskfs_synchronous): New variable. - * priv.h (CHANGE_NODE_FIELD): If DISKFS_SYNCHRONOUS, then sync - node after possibly changing it. - * io-seek.c: Prevent diskfs_synchronous from having its usual - effect here. - * dir-link.c (diskfs_S_dir_link): Implement diskfs_synchronous. - * dir-rename.c (diskfs_S_dir_rename): Likewise. - * dir-rmdir.c (diskfs_S_dir_rmdir): Likewise - * dir-unlink.c (diskfs_S_dir_unlink): Likewise. - * file-sync.c (diskfs_S_file_sync): Likewise. - * file-syncfs.c (diskfs_S_file_syncfs): Likewise. - * io-prenotify.c (diskfs_S_io_prenotify): Likewise. - * io-stat.c (diskfs_S_io_stat): Likewise. - * io-write.c (diskfs_S_io_write): Likewise. - * io-sigio.c (diskfs_S_io_sigio): Likewise. - -Tue Mar 7 15:21:09 1995 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * diskfs.h (struct userid): New type. - (struct protid): Replace UIDS, GIDS, NUIDS, and NGIDS with ID. - (diskfs_isuid): Replace with new function diskfs_idhasuid. - (diskfs_groupmember): Replace with new function diskfs_idhasgid. - (_diskfs_idisowner, _diskfs_idaccess, _diskfs_idcheckdirmod): - New functions. - (diskfs_isowner): Check each ID in the chain with - _diskfs_idisowner. - (diskfs_access): Check each ID in the chain with _diskfs_idaccess. - (diskfs_checkdirmod): Check each ID in the chain with - _diskfs_idcheckdirmod. - * file-chmod.c (diskfs_S_file_chmod): Perform the permission - check for each ID in the chain. - * file-chown.c (diskfs_S_file_chown): Likewise. - * file-getcontrol.c (diskfs_S_file_getcontrol): Likewise. - - * boot-parse.c (diskfs_parse_bootargs): Use assert_perror instead - of assert where appropriate. - * boot-start.c (diskfs_start_bootstrap): Likewise. - (diskfs_S_fsys_init): Likewise. - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Likewise. - * rdwr-internal.c (_diskfs_rdwr_internal): Likewise. - -Thu Jan 19 02:04:34 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile (ourfs_notify_U.h ourfs_notifyUser.c): Make this - instead of ourmsg_U.h. All references changed. - * dir-chg.c: Undo renaming. Includ ourfs_notify_U.h instead of - ourmsg_U.h. - - * io-select.c: Updated to new io_select protocol. - - * dir-chg.c (diskfs_S_dir_notice_changes): Call - nowait_msg_dir_changed instead of nowait_dir_changed. - -Sat Dec 10 20:03:07 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-start.c (start_execserver): When aligning bss size for - vm_allocate, don't include bss start alignment fixup offset. - -Fri Dec 9 02:06:35 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * io-read.c (diskfs_S_io_read): Don't check for MAXREAD<0. - - * io-write.c: Use mach_msg_type_number_t in place of unsigned int - and int. - * io-readable.c: Likewise. - * io-read.c: Likewise. - -Wed Nov 23 00:26:48 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * ports-demuxer.c (ports_demuxer): Call - diskfs_seqnos_notify_server, not seqnos_notify_server. - -Fri Nov 11 13:11:35 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * io-read.c (diskfs_S_io_read): If OFF is past the end of the - file, don't set MAXREAD to a negative number; that will crash - rdwr_internal. - -Wed Nov 9 01:46:18 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-exec.c: Include <hurd/paths.h>. - (diskfs_S_file_exec): If diskfs_exec isn't already - set, try to open it here. (Later, we should also deal if - exec_exec returns that the previous server died.) - -Tue Nov 8 00:06:56 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * file-get-trans.c: Include <stdio.h> for asprintf decl. - -Wed Nov 2 16:16:57 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * priv.h (CHANGE_NODE_FIELD): Don't call diskfs_node_update here. - -Fri Oct 28 18:26:15 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_parse_bootargs): Make stdout line buffered. - (diskfs_parse_bootargs): Use getline instead of scanf. - * boot-start.c (diskfs_start_bootstrap): Likewise. - (diskfs_S_fsys_init): Create a root port with two send right refs - and install it as crdir and cwdir. - -Tue Oct 25 14:16:50 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * boot-start.c (diskfs_start_bootstrap): Renamed variable ARGV - to be EXEC_ARGV and ARGVLEN to be EXEC_ARGVLEN. - -Fri Oct 7 01:30:12 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_parse_bootargs): Open console for reading too. - - * boot-start.c (saved_argv): New static variable. - (diskfs_start_bootstrap): Take arg ARGV; store it in saved_argv. - (diskfs_S_fsys_init): Construct a portarray and call _hurd_init. - Or, if _hurd_ports is already allocated, call _hurd_proc_init. - * diskfs.h (diskfs_start_bootstrap): Update prototype. - -Thu Oct 6 17:47:42 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * boot-start.c (diskfs_S_fsys_init): Allocate a reference on - authhandle before allowing the library to consume one. - -Wed Oct 5 13:00:46 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * node-drop.c (diskfs_drop_node): Clear passive translator - if we are releasing the inode. - -Thu Sep 29 18:12:31 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_parse_bootargs): If we have a bootstrap - port, talk to the CMU default pager on it, then clear it. - -Fri Sep 23 00:15:52 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * diskfs.h (diskfs_lost_hardrefs): Doc fix. - (diskfs_try_dropping_softrefs): New declaration. - (diskfs_nput): Always call diskfs_lost_hardrefs if the last - hardref goes away; call diskfs_try_dropping_softrefs if the - link count has vanished too. - (diskfs_nrele): Likewise. - (diskfs_nref): Lock node during call to diskfs_new_hardrefs. - -Thu Sep 22 21:20:40 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * diskfs.h (struct node): New member `istranslated'. - (diskfs_node_translated): Deleted function. - * dir-lookup.c (diskfs_S_dir_lookup): Use istranslated field - instead of diskfs_node_translated. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Likewise. - * file-set-trans.c (diskfs_S_file_set_translator): Likewise. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - -Fri Sep 16 11:53:04 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): Use new - lock on translator fields; don't hold it and the NP lock - simultaneously. - * trans-destroy.c (diskfs_destroy_translator): Doc fix. - - * dir-lookup.c (diskfs_S_dir_lookup): Turn off *all* flags - in call to getroot if we aren't the last component. - -Thu Sep 15 13:01:21 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * init-init.c (diskfs_init_diskfs): Restore commented-out - initialization of diskfs_auth_server_port. - -Mon Sep 12 14:38:54 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * fsys-getroot.c (diskfs_S_fsys_getroot): Clear translator - port if we get MIG_SERVER_DIED, as with MACH_SEND_INVALID_DEST. - -Sun Sep 11 23:30:13 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Copy PATHBUF into RETRYNAME - properly when symlink target begins with a slash. - -Sat Sep 10 08:36:08 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile (OTHERSRCS): Add init-startup.c. - * init-init.c (_diskfs_dotdot_file): Variable removed. - (diskfs_init_diskfs): Take no args; return void. - Don't do fsys_startup here. - * init-startup.c (diskfs_startup_diskfs): New file, new function. - Do fsys_startup here instead. - * diskfs.h (diskfs_init_diskfs): Update prototype. - (diskfs_startup_diskfs): Declare it. - - * dir-lookup.c (diskfs_S_dir_lookup): Use error_t for ERROR. - Retry when fsys_getroot returns MIG_SERVER_DIED, as with - MACH_SEND_INVALID_DEST. - -Fri Sep 9 13:04:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup) [EAGAIN]: Only copy - into RETRYNAME if this isn't the last component. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Set *RETRY - and *RETRYNAME properly on normal return. - - * init-init.c (diskfs_init_diskfs): Don't attempt to continue - if fsys_startup fails. Deallocate BOOTSTRAP after using it. - -Wed Sep 7 09:52:52 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * trans-start.c (diskfs_start_translator): Don't give write - access to underlying node if it's not IFREG. - - * dir-lookup.c (diskfs_S_dir_lookup): When returning a port - passed back from fsys_getroot, use MACH_MSG_TYPE_MOVE_SEND, - not the local default of MAKE_SEND. - - * trans-start.c (diskfs_start_translator): Removed assert. - -Tue Sep 6 15:30:59 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu> - - * dir-lookup.c (diskfs_S_dir_lookup): Translator startup code - rewritted to be more robust and use new locking protocol - on translink structures. - * trans-start.c (diskfs_start_translator): Don't pass LOCK arg - to diskfs_start_translator. Unlock NP around call to - diskfs_start_translator. Don't expect DIR to be deallocated. - -Thu Sep 1 12:28:03 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * trans-start.c (diskfs_start_translator): Expect right - on DIR and NPPORT to be consumed by fshelp_start_translator. - * fsys-getroot.c (diskfs_S_fsys_getroot): Allocate additional - send-right for DOTDOT to be consumed by diskfs_start_translator. - Be careful to deallocate DOTDOT when appropriate. - * dir-lookup.c (diskfs_S_dir_lookup): Create DIRFILE from - DNP, not NP. Create local reference for dirfile to use - in call to fsys_getroot. - - * boot-start.c (diskfs_start_bootstrap): Give the - library values for current working and root directories. - - * trans-start.c (diskfs_start_translator): Fix and enable. - * diskfs.h (diskfs_start_translator): Add new third arg to - prototype. - * dir-lookup.c (diskfs_S_dir_lookup): Provide third arg to - diskfs_start_translator. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - -Wed Aug 31 12:04:51 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec) [reauth]: Destroy REF after - using it. - - * file-get-trans.c (diskfs_S_file_get_translator) - [S_ISCHR || S_ISBLK]: Correct cast of second arg to vm_allocate. - - * Makefile (FSYSSRCS): Added fsys-readonly.c and fsys-syncfs.c. - * fsys-readonly.c, fsys-syncfs.c: New files. - -Wed Aug 31 01:50:07 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_parse_bootargs): Fix scanf format for - bootstrap filesystem device name. - - * file-exec.c (diskfs_S_file_exec): For S_ISUID|S_ISGID, create - new auth handle and reauthenticate passed ports properly. - -Tue Aug 30 13:44:29 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-exec.c (diskfs_S_file_exec): Don't bother setting - EXEC_NEWTASK for non-readable execs; it doesn't really work - anyhow. - - * init-init.c: Call ports_get_right with the result of - ports_allocate_port in call to fsys_startup. - - * trans-sync.c (diskfs_sync_translators): Use fsys_syncfs - instead of old ugly method. - - * init-init.c: Include <hurd/fsys.h>. - - * boot-start.c (diskfs_start_bootstrap): Check to make sure return - from fsys_getroot and dir_lookup is FS_RETRY_NORMAL with empty - retry_name instead of old FS_RETRY_NONE. - * dir-lookup.c (diskfs_S_dir_lookup): Initialize return values with - FS_RETRY_NORMAL and empty retryname instead of old FS_RETRY_NONE. - - * Makefile (FSSRCS): Remove dir-pathtrans.c; add dir-lookup.c. - * dir-lookup.c: Renamed from dir-pathtrans.c. - * dir-pathtrans.c (diskfs_S_dir_lookup): Renamed from - diskfs_S_dir_pathtrans. - * boot-start.c (diskfs_start_bootstrap): Call dir_lookup instead - of dir_pathtrans. - * ifsock.c (diskfs_S_ifsock_getsockaddr): Call file_name_lookup - instead of path_lookup. - -Mon Aug 29 12:51:42 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Use new - protocol for auth_server_authenticate. - -Fri Aug 26 12:49:09 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * file-set-trans.c (diskfs_S_file_set_translator): Rename args; - split flags arg into two. Interpret flags according to new - scheme. - -Thu Aug 18 12:58:44 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * boot-parse.c (diskfs_parse_bootargs): Print informative - bootstrap message. - * boot-start.c (diskfs_start_bootstrap): Likewise. - (start_execserver): Likewise. - - * boot-start.c (diskfs_start_bootstrap): Only do `pausing' - hack if RB_KDB was in bootstrap args. - (start_execserver): Likewise. - - * io-select.c (diskfs_S_io_select): Add new `porttype' arg. - -Thu Aug 11 13:05:40 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Set retry stuff - correctly if there are more components after translator - fsys_getroot. - -Sat Jul 23 02:25:54 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile (notify-MIGSFLAGS): New variable: -DSEQNOS. - - * ports-demuxer.c (ports_demuxer): Prepend diskfs_ to Hurd - interface server functions. - -Fri Jul 22 10:54:23 1994 Michael I Bushnell <mib@geech.gnu.ai.mit.edu> - - * Makefile: Changed to use new scheme. - * boot-start.c: Include "fsys_reply_U.h" instead of "fsys_reply.h". - * dir-chg.c: Include "ourmsg_U.h" instead of "msg.h". - * fsmutations.h SERVERPREFIX): Delete macro. - - * diskfs.h (struct thread_stuff, diskfs_catch_exception, - diskfs_end_catch_exception): Moved here from diskfs_machdep. - Delete inclusion of diskfs_machdep. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Skip leading - slashes instead of returning an error. - -Tue Jul 19 22:12:29 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Fix fsys_getroot call: - MACH_MSG_TYPE_MOVE_SEND instead of MACH_PORT_RIGHT_MOVE_SEND. - -Tue Jul 19 18:37:52 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * boot-start.c (diskfs_start_bootstrap): Create root port - before calling fsys_getroot on exec server. Pass root port - as exec server's dotdot node. - (diskfs_execboot_fsys_startup): Deleted dotdot args. - * diskfs.h (diskfs_execboot_fsys_startup): Deleted dotdot args. - * dir-pathtrans.c (diskfs_S_dir_pathtrans) [translator startup]: - Set dirfile always, not just when invoking the passive translator. - Pass dirfile to fsys_getroot. Clean up deallocate of dirfile. - * file-inv-trans.c (diskfs_S_file_invoke_translator): Comment - out code; this function should vanish. - * priv.h (_diskfs_dotdot_file): Deleted variable. - * fsys-getroot.c (diskfs_S_fsys_getroot): Use new arg `dotdot' - in place of _diskfs_dotdot_file. Pass dotdot in call to - fsys_getroot. - * trans-sync.c (diskfs_sync_translators): Pass grunge as dotdot - arg in call to fsys_getroot. - * fsys-startup.c (diskfs_S_fsys_startup): Deleted dotdot args; - don't pass them in calls to helper functions. - * init-init.c (diskfs_init_diskfs): Don't expect dotdot arg - from fsys_getroot; don't set _diskfs_dotdot_file. - -Mon Jul 18 15:24:30 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * file-inv-trans.c: New file. - * Makefile (FSSRCS): Added file-inv-trans.c. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Dereference - returned_port in check for null. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Likewise. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): After - diskfs_start_translator, set var `control'. - - * fsys-getroot.c (diskfs_S_fsys_getroot): After getting - MACH_SEND_INVALID_DEST from the translator, set error to zero - so that the user's open completes normally. Do other fixes - from Jul 7 that were made in dir-pathtrans.c for translator - startup. - - * ports-idle.c (ports_notice_idle): New file. - * Makefile (OTHERSRCS): Added ports-idle.c. - - * node-times.c (diskfs_set_node_times): Set old stat structure - times until the header file gets changed. - - * ifsock.c (diskfs_S_ifsock_getsockaddr): Provide type argument - in call to socket_fabricate_address. - -Fri Jul 15 12:00:38 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use - DIRCRED->po->dotdotport instead of diskfs_dotdot_file. - - * diskfs.h (diskfs_read_symlink_hook): New variable. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't permit symlinks - to be opened for reading or writing (just like other special file - types). Try using diskfs_read_symlink_hook before reading - from file data. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Try using - diskfs_read_symlink_hook before reading from file data. - * file-get-trans.c (diskfs_S_file_get_translator): Likewise. - -Thu Jul 14 14:39:08 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * diskfs.h (diskfs_create_symlink_hook): New variable. - (diskfs_truncate): Doc fix. - * file-set-trans.c (diskfs_S_file_set_translator): Try - diskfs_create_symlink_hook first, before writing ourselves. - Return errors to user properly. - - * node-times.c (diskfs_set_node_times): Use new stat structures - with struct timespec instead of old definitions. - -Wed Jul 13 14:26:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * shutdown.c (diskfs_shutdown): Check UNLINK bit first to avoid - dumping translators if we end up returning an error. - - * ports-noports.c: New file. - * ports-soft.c: New file. - * diskfs.h (diskfs_shutdown_soft_ports): New declaration. - * Makefile (OTHERSRCS): Added ports-noports.c and ports-soft.c. - - * diskfs.h (diskfs_init_diskfs): New arg `bootstrap'; add return - value. Call fsys_getroot if bootstrap is set. - - * diskfs.h (diskfs_dotdot_file): Deleted variable. - (struct peropen): New member `dotdotnode'. - (diskfs_make_peropen): New arg DOTDOTPORT. - * peropen-make.c (diskfs_make_peropen): Set PO->dotdotport; - allocate reference if necessary. - * priv.h (_diskfs_dotdot_file): New variable. - * init-init.c (_diskfs_dotdot_file): New definition. - * boot-start.c (diskfs_start_bootstrap): dotdot for created - peropen to root should be null (we are *the* root directory in this - case). - (diskfs_S_exec_startup): Likewise. - * dir-mkfile.c (diskfs_S_dir_mkfile): Inherit dotdot for - new peropen from CRED->po. - * file-exec.c (diskfs_S_file_exec): Likewise. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Inherit dotdot for - new peropens from DIRCRED->po. - * fsys-getroot.c (diskfs_S_fsys_getroot): Set dotdot - from _diskfs_dotdot_file. - - * diskfs.h (diskfs_control_port): Deleted variable. - * priv.h (_diskfs_control_lock, _diskfs_ncontrol_ports): New vars. - (_diskfs_control_clean): New declaration. - * ports-clean.c (ports_cleanroutines[PT_CTL]): Use - _diskfs_control_clean. - * init-init.c (diskfs_init_diskfs): Don't create control port here. - (_diskfs_control_lock, _diskfs_ncontrol_ports): New declarations. - * file-getcontrol.c (diskfs_S_file_getcontrol): Always create - a new control port structure. - - * io-write.c (diskfs_S_io_write): Honor O_FSYNC bit. - * conch-set.c (ioserver_put_shared_data): Set do_sigio if - user set O_FSYNC. - * io-stubs.c (diskfs_S_io_sigio): Removed function. - * io-sigio.c: New file. - * Makefile (IOSRCS): Added io-sigio.c - - * io-write.c (diskfs_S_io_write): Eliminate pointless test for - !err before _diskfs_rdwr_internal; only increment filepointer if - there was no error. - - * priv.h (_diskfs_rdwr_internal): New arg NOTIME. - * rdwr-internal.c (_diskfs_rdwr_internal): New arg NOTIME. - * io-read.c (diskfs_S_io_read): Don't set atime if O_NOATIME is on. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't allow non-owner - to set O_NOATIME. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - - * priv.h (HONORED_STATE_MODES): Add O_NOATIME. - (OPENONLY_STATE_MODES): New macro. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use - OPENONLY_STATE_MODES to turn off appropriate bits. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): At start, turn - off all the bits not in O_HURD; we ignore all those and don't - keep track of them in any way. - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - - * file-get-trans.c (diskfs_S_file_get_translator): Return - shortcircuited translators for IFCHR, IFBLK, IFIFO, and IFSOCK. - - * file-set-trans.c (diskfs_S_file_set_translator): In computing - rdev, 377 should be *octal*, not hex. - - * dir-rename.c (diskfs_S_dir_rename): Deallocate received - send-right for TOCRED any time we return success. - - * dir-link.c (diskfs_S_dir_link): Don't assume that NP is a - non-directory before checking it. - - * boot-start.c (diskfs_start_bootstrap): New variable - `initnamebuf' which is allocated and then not changed; free - it rather than freeing `initname'. - -Mon Jul 11 18:16:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Symlinks to pathnames - beginning with `/' sholud return FS_RERTY_MAGICAL (but the - retry name is stils the same). - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - -Fri Jul 8 13:34:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): After getting - MACH_SEND_INVALID_DEST from the translator, set error to zero - so that the user's open completes normally. - (diskfs_S_dir_pathtrans): Call mach_port_mod_refs correctly. - (diskfs_S_dir_pathtrans): In call to fsys_getroot, turn off - O_NOLINK for !lastcomp, not for lastcomp. - -Thu Jul 7 14:46:46 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Deal correctly - with the sendright on the translator control port avoiding - races while the node is unlocked. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): At translator - lookup time, if there is an active translator, release the - lock on DNP just like we do in the start-passive case. Also - after fsys_getroot, release reference and clear DNP so that - code at out: doesn't get it wrong. - (diskfs_S_dir_pathtrans): Call fshelp_translator_drop instead - of setting it to null ourselves. - * trans-destroy.c (diskfs_destroy_translator): Likewise. - -Wed Jul 6 14:43:55 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * ports-demuxer.c (ports_demuxer): Only call ifsock_server - if diskfs_shortcut_ifsock is set. - -Tue Jul 5 14:15:32 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * Makefile (TAGSHDRS): New variable. - -Thu Jun 30 11:35:43 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * fsmutations.h (IFSOCK_IMPORTS): New macro. - - * ports-demuxer.c (ports_demuxer): Call ifsock_server. - -Wed Jun 29 17:07:17 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * diskfs.h (struct node): New member `sockaddr'. - * node-make.c (diskfs_make_node): Initialize NP->sockaddr. - * node-drop.c (diskfs_drop_node): Deallocate NP->sockaddr - if it's been set. - * ifsock.c: New file. - * Makefile (IFSOCKSRCS): New variable. - (SRCS): Added $(IFSOCKSRCS). - (MIGSTUBS): Added ifsockServer.o. - (ifsock_S.h ifsockServer.c): New rule. - (ifsock_S.h): Depended on by IFSOCKSRCS generated objects. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Detect the case - where the server has died by looking for MACH_SEND_INVALID_DEST - as a return from fsys_getroot. Rearrange lock/unlock and - reference counting of NP and DNP because we may need them back - if we have to repeat the call. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Likewise. - -Fri Jun 24 15:52:52 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-link.c (diskfs_S_dir_link): The port_info struct member - is `port_right', not `port'. - -Tue Jun 21 13:25:15 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-link.c (diskfs_S_dir_link): Deallocate received send - right for DIRCRED anytime we return success. - - * dir-chg.c (diskfs_S_dir_notice_changes): New var `np'. Return - ENOTDIR if call is made on a non-directory. - -Mon Jun 20 16:40:37 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * node-drop.c (diskfs_drop_node): Free structures holding - dirmod requests. - * node-make.c (diskfs_make_node): Initialize NP->dirmod_reqs - to zero. - -Fri Jun 17 13:16:18 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * fsys-getroot.c (diskfs_S_fsys_getroot): Initialize ERROR. - -Fri Jun 17 11:21:25 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * trans-sync.c: Include <fcntl.h>. - - * Makefile (boot-start.o): Depend on fsys_reply.h. - -Thu Jun 16 11:31:46 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * Makefile (msg.h, msgUser.c): New rules. - (MIGSTUBS): Added msgUser.o. - (dir-chg.o): Depends on msg.h. - * dir-chg.c: Include "msg.h". - - * diskfs.h (diskfs_start_translator): Second arg DIR is now - file_t. Changed locking rules. - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Call - diskfs_start_translator the new way; clean up lock releases. - - * fshelp-dropnode.c: Deleted file. - * fshelp-getnode.c: Deleted file. - * Makefile (OTHERSRCS): Removed fshelp-dropnode.c and fshelp-getnode.c. - - * boot-start.c (diskfs_start_bootstrap): Use new fsys_getroot - interface. - - * fsys-getroot.c: Include <fcntl.h> for O_ bits. Include - <hurd/fsys.h> for fsys_startup prototype. - - * boot-start.c (diskfs_start_bootstrap, diskfs_S_exec_startup): - Delete obsolete assignments to INIT_PORT_LOGINCOLL. - - * diskfs.h (struct node) [dirmod_reqs]: New member. - (struct dirmod): New type. - (diskfs_dirrewrite, diskfs_dirremove, diskfs_direnter): Doc fix. - (diskfs_notice_dirchange): New prototype. - * dir-chg.c (diskfs_S_dir_notice_changes): Implement call. - (diskfs_notice_dirchange): New function. - - * diskfs.h (diskfs_get_directs): Doc fix. - - * file-access.c (diskfs_S_file_check_access): Renamed from - diskfs_S_file_access. Return allowable operations in *TYPE - rather than checking those explicitly asked for. Use O_ bits - instead of _OK bits. Include <fcntl.h>. - -Wed Jun 15 21:26:14 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Require lookup of - empty pathname to fail if not made on a directory. - - * fsys-getroot.c (diskfs_S_fsys_getroot): Rewritten to implement - the new fsys_getroot interface. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Don't implement - O_TRUNC here anymore. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Use the new - fsys_getroot interface for translator startup. - - * io-modes-set.c (diskfs_S_io_set_all_openmodes): Only let - the user set the user-setable bits. - - * file-get-transcntl.c (diskfs_S_file_get_translator_cntl): New - arg CTLTYPE; set appropriately. - -Wed Jun 15 12:18:16 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * file-chg.c (diskfs_S_file_notice_changes): Declare return type. - - * file-access.c: New file. - * Makefile (FSSRCS): Added file-access.c. - -Tue Jun 14 14:06:36 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * diskfs.h (diskfs_get_dirents): New declaration. - * dir-readdir.c (diskfs_S_dir_readdir): Implement new - interface using diskfs_get_directs. - - * dir-chg.c, file-chg.c: New files. - * Makefile (FSSRCS): Added dir-chg.c and file-chg.c. - -Thu Jun 9 13:39:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Release lock on NP - during call to fsys_getroot; stash control port and uid info in - new local variables. Reacquire lock before return (because - common code at label OUT expects NP to be locked). - -Mon Jun 6 18:54:50 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): In translator - startup check, test O_NOTRANS in flags correctly. - - * dir-renamed.c (diskfs_rename_dir): Don't call diskfs_nrele on - TMPNP after SPEC_DOTDOT calls; the spec says that SPEC_DOTDOT - with RENAME does not allocate a new reference. - -Sun Jun 5 05:51:11 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Fix - initialization of {GEN,AUX}_{UIDS,GIDS}. - -Fri Jun 3 18:19:22 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * file-set-trans.c (diskfs_S_file_set_translator): Use - fshelp_set_control instead of doing it ourselves. - -Thu Jun 2 12:00:51 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * diskfs.h (struct node): New member `light_references'. - (diskfs_nref, diskfs_nput, diskfs_nrele, diskfs_make_node): Doc fix. - (diskfs_nref_light, diskfs_nput_light, diskfs_nrele_light): - New functions. - (diskfs_nrele, diskfs_nput): Only call diskfs_drop_node if both - NP->references *and* NP->light_references are zero. - (diskfs_new_hardrefs, diskfs_lost_hardrefs): New declarations. - (diskfs_nref): Call diskfs_new_hardrefs when appropriate. - (diskfs_nput, diskfs_nrele): Call diskfs_lost_hardrefs when - appropriate. - - * node-make.c (diskfs_make_node): Initialize NP->light_references. - Doc fix. - -Wed Jun 1 18:24:11 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Skip over multiple - slashes in pathnames by incrementing NEXTNAME after setting it. - Also, if after we do this we discover that there is no last - component, then set LASTCOMP and clear NEXTNAME and CREATE - entirely, and set (new variable) MUSTBEDIR. Then check for - MUSTBEDIR after the node has been fetched. Make var TYPE - function-global and set it always, not just when NEWNODE is unset. - -Fri May 27 08:47:46 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * boot-start.c (diskfs_S_exec_exec, diskfs_S_exec_setexecdata): - Add missing args. - (diskfs_S_exec_startup): Don't point *ARGVP to EXEC_DATA local - storage. Instead, copy EXEC_DATA to *ARGVP if *ARGVLEN allows; - otherwise vm_allocate new space and copy into there. - -Thu May 26 15:33:57 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * diskfs.h (diskfs_nrele): Acquire lock if we are releasing - the last reference. - - * node-drop.c (diskfs_drop_node): If we are truncating, then - go back to normal user state and do the truncate; the next - time through we will do the dealloc for real. - Semantics change: now this routine is responsible for - unlocking diskfs_node_refcnt_lock. All callers changed. - -Wed May 25 20:34:17 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * io-write.c (diskfs_S_io_write): Don't check for *AMT < 0; AMT is - an out-only parameter. - -Wed May 25 12:23:25 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * ports-consts.c (ports_use_multiple_threads): Deleted definition. - * init-first.c (diskfs_spawn_first_thread): Fork - ports_manage_port_operations_multithread instead of - ports_maange_port_operations. - * init-loop.c (diskfs_main_request_loop): Likewise. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Reference node in - lookup of empty path case so that common code at the out: label - doesn't free an extra one. - -Mon May 23 23:13:51 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * boot-start.c (diskfs_S_fsys_init): Start exec_init after - proc_child. - -Thu May 19 12:48:53 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * io-reauthenticate.c (diskfs_S_io_reauthenticate): Unlock - node after calling diskfs_finish_protid. - -Thu May 12 14:23:29 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * Makefile (clean): Add fsys_reply.h and *User.c. - -Thu May 12 03:45:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * Makefile (fsys_reply.h fsys_replyUser.c): New rule. - (MIGSTUBS): Add fsys_replyUser.o. - * boot-start.c: Include fsys_reply.h. - (diskfs_S_fsys_init): Take new reply port args. - Send reply msg as soon as verified, before doing anything. - -Mon May 9 16:58:24 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * diskfs.h (diskfs_init_completed): New function declaration. - * boot-start.c (diskfs_S_fsys_init): Don't call _hurd_proc_init. - Do call diskfs_init_completed. - -Thu May 5 13:04:43 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Behave properly - if nextname is null. Copy nextname to the end of the symlink - target rather than vice versa. Don't punt to the caller before - doing the append. - (diskfs_S_dir_pathtrans): O_NOTRANS should prevent symlink - interpretation. - (diskfs_S_dir_pathtrans): If a symlink traversal was the last - component, then clear CREATE (symlinks to nothing don't honor - O_CREAT) and clear LASTCOMP (because it isn't true any longer). - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Fix mangled check - for O_NOLINK. - (diskfs_S_dir_pathtrans): Repair furtherly mangled check for - O_NOLINK. - - * conch-set.c (ioserver_put_shared_data): Set - optimal_transfer_size from the same thing we return in stat. - - * io-async.c (diskfs_S_io_async): Just return EOPNOTSUPP without - doing anything more at all. - -Thu May 5 06:32:10 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * io-prenotify.c (diskfs_S_io_prenotify): Make START and END args - type vm_offset_t. - - * io-map-cntl.c (diskfs_S_io_map_cntl): Take 3rd result arg - for msg type of *CTLOBJ; set it to copy-send. - - * io-async.c (diskfs_S_io_async): Take 3rd result arg for msg type - of *IDPORT; set it to copy-send. Return 0 instead of EOPNOTSUPP; - should not be deallocating NOTIFY if returning an error. - - * io-async-icky.c (diskfs_S_io_get_icky_async_id): Take 3rd result arg - for msg type of *IDPORT; set it to copy-send. - - * conch-set.c (ioserver_put_shared_data): Temporarily #if 0 - setting of optimal_transfer_size from bogus undeclared variable. - - * protid-make.c: Include <string.h> to get bcopy declared. - - * {file,dir,io,fsys}-*.c: Changed return type of all RPC server - functions to kern_return_t. error_t is not compatible with the - declarations in the mig-generated header files. - - * Makefile: Change uses of $(headers) to $(includedir). - - * file-exec.c (diskfs_S_file_exec): Fix msg type arg in exec_exec call. - - * dir-pathtrans.c (diskfs_S_dir_pathtrans): Add missing close paren. - - * boot-start.c (diskfs_start_bootstrap): Pass msg type arg for - FILE arg to exec_exec. - (diskfs_S_fsys_getpriv): Change return type to kern_return_t. - error_t is not compatible with the declarations in the - mig-generated header files. - (diskfs_S_fsys_init): Likewise. - (exec_stack_base, exec_stack_size): New variables. - (diskfs_S_exec_startup): Use those for stack values in reply. - (start_execserver): Pass them to mach_setup_thread to be initialized. - -Mon May 2 16:32:22 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * dir-pathtrans.c: Test for O_NOLINK flag was mangled. - -Fri Apr 29 16:44:08 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) - - * io-stubs.c (diskfs_S_io_readnotify): New function. - - * conch-set.c (ioserver_put_shared_data): Set new fields - optimal_transfer_size (to sblock->fs_bsize) and - use_readnotify_size (to zero). - - * file-exec.c (diskfs_S_file_exec): Change call to exec_exec in - accord with interface change in exec.defs. - -Mon Feb 14 11:26:26 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * boot-start.c: #include <hurd.h>. - (start_execserver): Call _hurd_setup_thread in place of start_thread. diff --git a/libdiskfs/boot-start.c b/libdiskfs/boot-start.c index ad3cf1a4..e73e4d37 100644 --- a/libdiskfs/boot-start.c +++ b/libdiskfs/boot-start.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1993,94,95,96,97,98,99,2000,01,02 + Copyright (C) 1993,94,95,96,97,98,99,2000,01,02,10 Free Software Foundation, Inc. This file is part of the GNU Hurd. @@ -194,6 +194,9 @@ diskfs_start_bootstrap () diskfs_exec_ctl = MACH_PORT_NULL; /* Not used after this. */ } + /* Cache the exec server port for file_exec to use. */ + _hurd_port_set (&_diskfs_exec_portcell, diskfs_exec); + if (_diskfs_boot_command) { /* We have a boot command line to run instead of init. */ @@ -276,9 +279,6 @@ diskfs_start_bootstrap () mach_port_deallocate (mach_task_self (), startup_pt); mach_port_deallocate (mach_task_self (), bootpt); assert_perror (err); - - /* Cache the exec server port for file_exec to use. */ - _hurd_port_set (&_diskfs_exec_portcell, diskfs_exec); } /* We look like an execserver to the execserver itself; it makes this diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c index 56c9587e..7e092908 100644 --- a/libdiskfs/dir-lookup.c +++ b/libdiskfs/dir-lookup.c @@ -1,6 +1,6 @@ /* libdiskfs implementation of fs.defs:dir_lookup - Copyright (C) 1992,93,94,95,96,97,98,99,2000,01,02 - Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2008 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -53,8 +53,8 @@ diskfs_S_dir_lookup (struct protid *dircred, int mustbedir = 0; size_t amt; int type; - struct protid *newpi; - struct peropen *newpo; + struct protid *newpi = 0; + struct peropen *newpo = 0; if (!dircred) return EOPNOTSUPP; @@ -257,8 +257,8 @@ diskfs_S_dir_lookup (struct protid *dircred, if (! error) { error = diskfs_create_protid (newpo, user, &newpi); - if (error) - diskfs_release_peropen (newpo); + if (! error) + newpo = 0; } iohelp_free_iouser (user); @@ -269,6 +269,7 @@ diskfs_S_dir_lookup (struct protid *dircred, dirport = ports_get_send_right (newpi); ports_port_deref (newpi); + newpi = 0; if (np != dnp) mutex_unlock (&dnp->lock); @@ -460,28 +461,24 @@ diskfs_S_dir_lookup (struct protid *dircred, dircred->po, &newpo); if (! error) - { - error = diskfs_create_protid (newpo, dircred->user, &newpi); - if (error) - diskfs_release_peropen (newpo); - } + error = diskfs_create_protid (newpo, dircred->user, &newpi); if (! error) { + newpo = 0; if (flags & O_EXLOCK) error = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status, &np->lock, LOCK_EX); else if (flags & O_SHLOCK) error = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status, &np->lock, LOCK_SH); - if (error) - ports_port_deref (newpi); /* Get rid of NEWPI. */ } if (! error) { *returned_port = ports_get_right (newpi); ports_port_deref (newpi); + newpi = 0; } out: @@ -495,5 +492,10 @@ diskfs_S_dir_lookup (struct protid *dircred, if (dnp) diskfs_nput (dnp); + if (newpi) + ports_port_deref (newpi); + if (newpo) + diskfs_release_peropen (newpo); + return error; } diff --git a/libdiskfs/dir-rename.c b/libdiskfs/dir-rename.c index 6fc7e0f5..867e395d 100644 --- a/libdiskfs/dir-rename.c +++ b/libdiskfs/dir-rename.c @@ -1,5 +1,7 @@ /* libdiskfs implementation of fs.defs: dir_rename - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation + + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 2007 + Free Software Foundation This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -17,6 +19,7 @@ #include "priv.h" #include "fs_S.h" +#include <string.h> /* To avoid races in checkpath, and to prevent a directory from being simultaneously renamed by two processes, we serialize all renames of @@ -42,6 +45,10 @@ diskfs_S_dir_rename (struct protid *fromcred, if (! tocred) return EXDEV; + if (!strcmp (fromname, ".") || !strcmp (fromname, "..") + || !strcmp (toname, ".") || !strcmp (toname, "..")) + return EINVAL; + if (tocred->po->shadow_root != fromcred->po->shadow_root) /* Same translator, but in different shadow trees. */ return EXDEV; @@ -138,6 +145,7 @@ diskfs_S_dir_rename (struct protid *fromcred, { diskfs_drop_dirstat (tdp, ds); diskfs_nrele (fnp); + diskfs_nput (tnp); mutex_unlock (&tdp->lock); return EISDIR; } @@ -149,6 +157,8 @@ diskfs_S_dir_rename (struct protid *fromcred, { diskfs_drop_dirstat (tdp, ds); diskfs_nput (fnp); + if (tnp) + diskfs_nput (tnp); mutex_unlock (&tdp->lock); return EMLINK; } diff --git a/libdiskfs/dir-renamed.c b/libdiskfs/dir-renamed.c index ce8f4153..79381b2c 100644 --- a/libdiskfs/dir-renamed.c +++ b/libdiskfs/dir-renamed.c @@ -32,7 +32,6 @@ checkpath(struct node *source, error_t err; struct node *np; - np = target; for (np = target, err = 0; /* nothing */; /* This special lookup does a diskfs_nput on its first argument diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h index 70ce1e3f..9a61964c 100644 --- a/libdiskfs/diskfs.h +++ b/libdiskfs/diskfs.h @@ -1,5 +1,7 @@ /* Definitions for fileserver helper functions - Copyright (C) 1994,95,96,97,98,99,2001,02 Free Software Foundation, Inc. + + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2007, 2008, + 2009 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -79,7 +81,7 @@ struct node /* Stat has been modified if one of the following four fields is nonzero. Also, if one of the dn_set_?time fields is nonzero, - the appropriate dn_stat.st_?time field needs to be updated. */ + the appropriate dn_stat.st_?tim field needs to be updated. */ int dn_set_ctime; int dn_set_atime; int dn_set_mtime; @@ -715,7 +717,7 @@ struct node *diskfs_make_node (struct disknode *dn); This function is a wrapper for diskfs_lookup_hard. */ error_t diskfs_lookup (struct node *dp, - char *name, enum lookup_type type, + const char *name, enum lookup_type type, struct node **np, struct dirstat *ds, struct protid *cred); @@ -864,7 +866,11 @@ error_t diskfs_clear_directory (struct node *dp, struct node *pdp, error_t diskfs_init_dir (struct node *dp, struct node *pdp, struct protid *cred); -/* If NP->dn_set_ctime is set, then modify NP->dn_stat.st_ctime +/* If disk is not readonly and the noatime option is not enabled, set + NP->dn_set_atime. */ +void diskfs_set_node_atime (struct node *np); + +/* If NP->dn_set_ctime is set, then modify NP->dn_stat.st_ctim appropriately; do the analogous operation for atime and mtime as well. */ void diskfs_set_node_times (struct node *np); diff --git a/libdiskfs/file-utimes.c b/libdiskfs/file-utimes.c index b87aa18e..39fac504 100644 --- a/libdiskfs/file-utimes.c +++ b/libdiskfs/file-utimes.c @@ -32,7 +32,8 @@ diskfs_S_file_utimes (struct protid *cred, np->dn_set_atime = 1; else { - np->dn_stat.st_atime = atime.seconds; + np->dn_stat.st_atim.tv_sec = atime.seconds; + np->dn_stat.st_atim.tv_nsec = atime.microseconds * 1000; np->dn_set_atime = 0; } @@ -40,7 +41,8 @@ diskfs_S_file_utimes (struct protid *cred, np->dn_set_mtime = 1; else { - np->dn_stat.st_mtime = mtime.seconds; + np->dn_stat.st_mtim.tv_sec = mtime.seconds; + np->dn_stat.st_mtim.tv_nsec = mtime.microseconds * 1000; np->dn_set_mtime = 0; } diff --git a/libdiskfs/fsys-getroot.c b/libdiskfs/fsys-getroot.c index 54ba0a58..e083032e 100644 --- a/libdiskfs/fsys-getroot.c +++ b/libdiskfs/fsys-getroot.c @@ -186,10 +186,9 @@ diskfs_S_fsys_getroot (fsys_t controlport, diskfs_release_peropen (newpo); } - mach_port_deallocate (mach_task_self (), dotdot); - if (! error) { + mach_port_deallocate (mach_task_self (), dotdot); *retry = FS_RETRY_NORMAL; *retryname = '\0'; *returned_port = ports_get_right (newpi); diff --git a/libdiskfs/io-pathconf.c b/libdiskfs/io-pathconf.c index b851f9b1..38e277c3 100644 --- a/libdiskfs/io-pathconf.c +++ b/libdiskfs/io-pathconf.c @@ -41,6 +41,7 @@ diskfs_S_io_pathconf (struct protid *cred, case _PC_PIPE_BUF: case _PC_VDISABLE: case _PC_SOCK_MAXBUF: + case _PC_PATH_MAX: *value = -1; break; diff --git a/libdiskfs/io-reauthenticate.c b/libdiskfs/io-reauthenticate.c index fd427e20..3c5da52d 100644 --- a/libdiskfs/io-reauthenticate.c +++ b/libdiskfs/io-reauthenticate.c @@ -53,9 +53,9 @@ diskfs_S_io_reauthenticate (struct protid *cred, { diskfs_finish_protid (newcred, user); iohelp_free_iouser (user); + mach_port_deallocate (mach_task_self (), rend_port); } - mach_port_deallocate (mach_task_self (), rend_port); mach_port_deallocate (mach_task_self (), newright); mutex_unlock (&cred->po->np->lock); diff --git a/libdiskfs/lookup.c b/libdiskfs/lookup.c index d81a053e..1f2a2588 100644 --- a/libdiskfs/lookup.c +++ b/libdiskfs/lookup.c @@ -82,7 +82,7 @@ static spin_lock_t cm_lock = SPIN_LOCK_INITIALIZER; This function is a wrapper for diskfs_lookup_hard. */ error_t -diskfs_lookup (struct node *dp, char *name, enum lookup_type type, +diskfs_lookup (struct node *dp, const char *name, enum lookup_type type, struct node **np, struct dirstat *ds, struct protid *cred) { error_t err; diff --git a/libdiskfs/node-times.c b/libdiskfs/node-times.c index fa3a20a7..67f0142e 100644 --- a/libdiskfs/node-times.c +++ b/libdiskfs/node-times.c @@ -1,5 +1,7 @@ -/* Process st_?time updates marked for a diskfs node. - Copyright (C) 1994,96,99,2000 Free Software Foundation, Inc. +/* Process st_?tim updates marked for a diskfs node. + + Copyright (C) 1994, 1996, 1999, 2000, 2007, 2009 Free Software Foundation, + Inc. This file is part of the GNU Hurd. @@ -22,7 +24,16 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "priv.h" #include <maptime.h> -/* If NP->dn_set_ctime is set, then modify NP->dn_stat.st_ctime +/* If disk is not readonly and the noatime option is not enabled, set + NP->dn_set_atime. */ +void +diskfs_set_node_atime (struct node *np) +{ + if (!_diskfs_noatime && !diskfs_check_readonly ()) + np->dn_set_atime = 1; +} + +/* If NP->dn_set_ctime is set, then modify NP->dn_stat.st_ctim appropriately; do the analogous operation for atime and mtime as well. */ void diskfs_set_node_times (struct node *np) @@ -41,37 +52,22 @@ diskfs_set_node_times (struct node *np) the update will happen at the next call. */ if (np->dn_set_mtime) { -#ifdef notyet - np->dn_stat.st_mtimespec.ts_sec = t.tv_sec; - np->dn_stat.st_mtimespec.ts_nsec = t.tv_usec * 1000; -#else - np->dn_stat.st_mtime = t.tv_sec; - np->dn_stat.st_mtime_usec = t.tv_usec; -#endif + np->dn_stat.st_mtim.tv_sec = t.tv_sec; + np->dn_stat.st_mtim.tv_nsec = t.tv_usec * 1000; np->dn_stat_dirty = 1; np->dn_set_mtime = 0; } if (np->dn_set_atime) { -#ifdef notyet - np->dn_stat.st_atimespec.ts_sec = t.tv_sec; - np->dn_stat.st_atimespec.ts_nsec = t.tv_usec * 1000; -#else - np->dn_stat.st_atime = t.tv_sec; - np->dn_stat.st_atime_usec = t.tv_usec; -#endif + np->dn_stat.st_atim.tv_sec = t.tv_sec; + np->dn_stat.st_atim.tv_nsec = t.tv_usec * 1000; np->dn_stat_dirty = 1; np->dn_set_atime = 0; } if (np->dn_set_ctime) { -#ifdef notyet - np->dn_stat.st_ctimespec.ts_sec = t.tv_sec; - np->dn_stat.st_ctimespec.ts_nsec = t.tv_usec * 1000; -#else - np->dn_stat.st_ctime = t.tv_sec; - np->dn_stat.st_ctime_usec = t.tv_usec; -#endif + np->dn_stat.st_ctim.tv_sec = t.tv_sec; + np->dn_stat.st_ctim.tv_nsec = t.tv_usec * 1000; np->dn_stat_dirty = 1; np->dn_set_ctime = 0; } diff --git a/libdiskfs/priv.h b/libdiskfs/priv.h index de8c747a..07464d56 100644 --- a/libdiskfs/priv.h +++ b/libdiskfs/priv.h @@ -1,5 +1,7 @@ /* Private declarations for fileserver library - Copyright (C) 1994,95,96,97,98,99,2001,2006 Free Software Foundation, Inc. + + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2006, 2009 Free + Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -33,7 +35,7 @@ /* These inhibit setuid or exec. */ extern int _diskfs_nosuid, _diskfs_noexec; -/* This relaxes the requirement to set `st_atime'. */ +/* This relaxes the requirement to set `st_atim'. */ extern int _diskfs_noatime; /* This enables SysV style group behaviour. New nodes inherit the GID |