Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
* boot-start.c (diskfs_start_bootstrap): Twiddle boot-time messages.
|
|
|
|
* 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.
|
|
|
|
* 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.
|
|
* file-exec.c (diskfs_S_file_exec): If exec server port is stale, try
once to look up a new one.
|
|
|
|
* boot-parse.c: File removed (it has been obsolete since 1995).
|
|
|
|
* boot-start.c (diskfs_S_fsys_init): Call _hurd_proc_init with new
args set to zero.
|
|
* trans-callback.c (_diskfs_translator_callback1_fn): Use size_t*
instead of int* for ARGZ_LEN arg.
|
|
* file-chflags.c (diskfs_S_file_chflags): Only set
NP->dn_set_ctime if we actually set the flags.
|
|
|
|
* init-startup.c (diskfs_startup_diskfs): Use diskfs_nput to free
the old diskfs_root_node when switching to a virtual root.
|
|
|
|
* 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.
|
|
* 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.
|
|
* dir-lookup.c (diskfs_S_dir_lookup): Treat a shadow_root with null
shadow_root_parent as a "virtual root".
|
|
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.
|
|
|
|
* 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.
|
|
* file-chflags.c (diskfs_S_file_chflags): Set NP->dn_set_ctime.
|
|
* file-utimes.c (diskfs_S_file_utimes): Add file notifications.
|
|
* 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.
|
|
|
|
* 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.
|
|
|
|
* dir-lookup.c (diskfs_S_dir_lookup: short_circuited_callback1): Fix
type of arg `argz_len' to use size_t *.
|
|
* 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.)
|
|
|
|
* lookup.c (diskfs_lookup): If NAME is empty, return an error.
|
|
* 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).
|
|
* file-reparent.c (diskfs_S_file_reparent): Use diskfs_nrele
instead of protocol-violating up-tree lock.
* peropen-rele.c (diskfs_release_peropen): Likewise.
|
|
|
|
Prepend "_diskfs" to uses of NOSUID & NOEXEC.
|
|
|
|
Prepend "_diskfs" to uses of NOSUID & NOEXEC.
|
|
Rename definitions from ..._OPT.
(set_opts):
Prepend "_diskfs" to uses of NOSUID & NOEXEC.
|
|
|
|
Declaration removed.
(_diskfs_nosuid, _diskfs_noexec):
Renamed from nosuid & noexec.
|
|
|
|
Add --no-suid and --no-exec options.
Don't deallocate ARGZ when we get an error.
|
|
* 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.
|
|
* 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.
|