| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Hurd code relies on gnumach default_pager.defs headers when making calls
using the default pager RPC. Those stubs were checked in back in the 90s
and are essentially unused because gnumach does not implement or use
that interface. Instead use the Hurd interface directly.
This is safe since the Hurd stubs are a super set of the gnumach stubs.
Later, we won't need to install the gnumach stubs anymore through glibc.
Message-Id: <ZC5WqPKfCCiE8D29@jupiter.tail36e24.ts.net>
|
|
|
|
|
| |
Also add -Werror=old-style-definition to enforce new code.
Message-Id: <ZBZ+8xf7GHy2RT/h@jupiter.tail36e24.ts.net>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
mach_port_t are mach_port_name_t and thus require %u instead of %lu.
Message-Id: <Y42RELMbulK4xaKM@reue>
|
| |
|
|
|
|
|
|
| |
stdout/err could shut down for whatever reason (killed the term on
/dev/console or whatever). We should not crash just because we lost our
ability to print output.
|
|
|
|
| |
Message-Id: <20220829193617.13481-1-etienne.brateau@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here's the sequence of events that leads to a bug:
* A task calls file_exec_paths () on itself, holding the only send right to the
protid, passing EXEC_NEWTASK (or EXEC_SECURE, which implies it).
* S_file_exec_paths () calls exec_exec_paths ()
* The exec server sets up a new task and calls proc_reassign () or
proc_reauthenticate_reassign ().
* The proc server destroys the old task, and the only send right to the protid
with it.
* The translator gets a no-senders notification, which results in a
ports_interrupt_rpcs () call on the S_file_exec_paths ().
* This propagates to the exec server (and potentially proc and auth servers).
* The exec gets canceled, and the new task gets killed.
In my opinion, the party that seems most guilty is the translator canceling exec
upon receiving a no-senders notification for the protid. Normally, a no-senders
notification means that the caller is no longer interested in the RPC, but this
is not true in case of exec.
To work around this, create an additional send right to the protid.
|
|
|
|
| |
This logic is obviously broken, let's disable it for now.
|
|
|
|
|
| |
Namely, ports_request_dead_name_notification () where we can,
and the libports notify port when we have to pass it to libfshelp.
|
|
|
|
|
| |
We cannot properly detect when to release the ro_proxy, so let's just not
cache it.
|
| |
|
|
|
|
| |
Message-Id: <20220119192945.36654-4-etienne.brateau@gmail.com>
|
|
|
|
|
| |
Now that the RPCs have const, this forces us cleaning our const-meant
functions.
|
|
|
|
|
| |
This follows mig's cf4bcc3f1435 ("Also add const qualifiers on server
side")
|
|
|
|
| |
No actual behavior change.
|
|
|
|
|
|
| |
libdiskfs' dosync goes through the cache to flush nodes to the disk.
We thus have to flush a node to the disk before removing it from the
cache in diskfs_try_dropping_softrefs.
|
|
|
|
|
| |
libdiskfs was passing its own proc port, thus confusing the fsys_init
call in rumpdisk.
|
|
|
|
|
|
|
|
|
|
|
| |
glibc 2.33 separated out _hurd_libc_proc_init from _hurd_init, so we
have to additionally call it.
* configure.ac (_hurd_libc_proc_init): Detect function.
* libdiskfs/boot-start.c (diskfs_S_fsys_init): Call
_hurd_libc_proc_init.
* libmachdev/trivfs_server.c (trivfs_S_fsys_init): Call
_hurd_libc_proc_init.
|
|
|
|
|
|
|
|
|
| |
When deadling with multiple levels of symlinks, we really need double
buffering between the current path and the symlink target, and thus cannot
reuse pathbuf.
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Always use alloca for
pathbuf.
|
|
|
|
|
|
|
|
|
| |
Like Linux does, to avoid writing inodes when just reading files already in
the cache.
* libdiskfs/init-init.c (_diskfs_relatime): Set to 1.
* libdiskfs/opts-std-runtime.c (set_opts): Always _diskfs_relatime from
h->relatime.
|
|
|
|
|
|
|
| |
Some tests (such as glibc's tst-atime) require it for instance.
* libdiskfs/node-times.c (atime_should_update): Also return 1 when atime
is equal to mtime or ctime.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/hurd.texi (diskfs_set_node_atime): Document relatime behavior.
* libdiskfs/diskfs.h (diskfs_set_node_atime): Likewise.
* libdiskfs/init-init.c (_diskfs_relatime): Add variable.
* libdiskfs/file-statfs.c (ST_RELATIME): Define if not defined already.
(diskfs_S_file_statfs): Report ST_RELATIME when _diskfs_relatime is set.
* libdiskfs/node-times.c (atime_should_update): New function.
(diskfs_set_node_atime): Document relatime behavior. Call
atime_should_update instead of reading _diskfs_noatime.
* libdiskfs/opts-common.c (diskfs_common_options): Add --strictatime and
-R/--relatime options.
* libdiskfs/opts-std-runtime.c (struct parse_hook): Add relatime field.
(set_opts): Set _diskfs_relatime from relatime field.
(parse_opt): Parse -R option.
* libdiskfs/opts-std-startup.c (parse_startup_opt): Parse -R option.
* libdiskfs/priv.h (_diskfs_relatime): Declare variable.
(atime_should_update): Declare function.
* libdiskfs/opts-append-std.c (diskfs_append_std_options): Add reporting
--relatime option.
* libdiskfs/conch-fetch.c (iohelp_fetch_shared_data): Call
atime_should_update instead of reading _diskfs_noatime.
* libdiskfs/rdwr-internal.c (_diskfs_rdwr_internal): Likewise.
|
|
|
|
| |
Message-Id: <20200728100837.224336-1-damien@zamaudio.com>
|
|
|
|
| |
Message-Id: <20200728100837.224336-2-damien@zamaudio.com>
|
|
|
|
|
|
|
| |
When we will have a rump translator before the root filesystem translator,
we will want to give to the former a control port on the latter.
Message-Id: <20200726073721.202405-1-damien@zamaudio.com>
|
| |
|
|
|
|
|
| |
fshelp_rlock_drop_peropen actually needs the node to be locked for
proper waiting atomicity.
|
|
|
|
|
|
|
|
| |
diskfs_make_peropen does not need node to be locked. Worse, it could try to
lock it.
* libdiskfs/file-reparent.c (diskfs_S_file_reparent): Do not lock node
around diskfs_make_peropen.
|
|
|
|
|
|
|
|
| |
* libdiskfs/io-pathconf.c (diskfs_S_io_pathconf): For
_PC_REC_MAX_XFER_SIZE, _PC_REC_INCR_XFER_SIZE, _PC_SYMLINK_MAX, return
undefined. For _PC_2_SYMLINKS, return 1. For _PC_REC_MIN_XFER_SIZE,
_PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, return page size.
* libnetfs/io-pathconf.c (netfs_S_io_pathconf): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which will be the default in gcc-10.
* acpi/acpifs.h (fs, acpifs_maptime): Add extern qualifier.
* boot/private.h (verbose): Likewise.
* eth-multiplexer/netfs_impl.h (multiplexer_maptime): Likewise.
* eth-multiplexer/vdev.h (port_bucket, vdev_portclass): Likewise.
* exec/priv.h (port_bucket, execboot_portclass): Likewise.
* ext2fs/ext2fs.h (sblock, sblock_dirty, block_size, log2_block_size,
log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block,
zeroblock, frag_size, frags_per_block, inodes_per_block,
itb_per_group, db_per_group, desc_per_block, addr_per_block,
groups_count, node_to_page_lock, generation_lock, next_generation,
group_desc_image, global_pokel, modified_global_blocks,
use_xattr_translator_records): Likewise.
* hostmux/hostmux.h (hostmux_maptime): Likewise.
* isofs/isofs.h (host_name, mounted_on, disk_image, disk_image_len,
logical_block_size, sblock): Likewise.
* libdiskfs/diskfs.h (diskfs_shortcut_symlink, diskfs_shortcut_chrdev,
diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock,
diskfs_create_symlink_hook, diskfs_read_symlink_hook): Likewise.
* libnetfs/callbacks.h (_netfs_translator_callback1,
_netfs_translator_callback2): Likewise.
* libnetfs/priv.h (netfs_mtime): Likewise.
* libpager/priv.h (_pager_class): Likewise.
* libtrivfs/trivfs.h (trivfs_check_access_hook, trivfs_check_open_hook,
trivfs_open_hook, trivfs_protid_create_hook, trivfs_peropen_create_hook,
trivfs_protid_destroy_hook, trivfs_peropen_destroy_hook,
trivfs_getroot_hook): Likewise.
* lwip/lwip-hurd.h (lwip_bucket, socketport_class, addrport_class,
shutdown_notify_class, lwip_protid_portclasses, lwip_cntl_portclasses,
lwip_bootstrap_portclass, fsys_identity, lwipcntl, lwip_owner,
lwip_group): Likewise.
* lwip/port/include/netif/hurdtunif.h (tunnel_cntlclass, tunnel_class):
Likewise.
* nfs/nfs.h (main_udp_socket, hostname, mapped_time): Likewise.
* nfsd/nfsd.h (mapped_time, authserver): Likewise.
* pci-arbiter/pcifs.h (fs, pcifs_maptime): Likewise.
* pci-arbiter/startup.h (pci_shutdown_notify_class,
arrange_shutdown_notification): Likewise.
* pfinet/pfinet.h (pfinet_bucket, addrport_class, socketport_class,
fsys_identity, pfinetctl, pfinet_owner, pfinet_group): Likewise.
* pflocal/sserver.h (sock_port_bucket): Likewise.
* proc/proc.h (authserver, self_proc, init_proc, startup_proc, proc_bucket,
proc_class, generic_port_class, exc_class, generic_port, kernel_proc,
global_lock): Likewise.
* term/term.h (termstate, termflags, global_lock, carrier_alert,
select_alert, pty_select_alert, term_bucket, tty_cntl_class,
tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl,
inputq, rawq, outputq, remote_input_mode, external_processing,
term_owner, term_group, term_mode, bottom): Likewise.
* usermux/usermux.h (usermux_maptime): Likewise.
* utils/msgids.h (msgid_argp): Likewise.
* libdiskfs/priv.h (_diskfs_mtime): Remove definition.
* lwip/options.h (lwip_argp): Add prototype.
* mach-defpager/priv.h (partitions): Name structure.
(all_partitions): Add extern qualifier.
* acpi/main.c (acpifs_maptime, fs): New variables.
* exec/main.c (port_bucket, execboot_portclass): Likewise.
* ext2fs/ext2fs.c (sblock, sblock_dirty, block_size, log2_block_size,
log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block,
frag_size, frags_per_block, inodes_per_block, itb_per_group,
db_per_group, desc_per_block, addr_per_block, groups_count,
next_generation, group_desc_image, global_pokel,
use_xattr_translator_records): Likewise.
* isofs/main.c (host_name, mounted_on, logical_block_size, sblock):
Likewise.
* libpager/pager-create.c (_pager_class): Likewise.
* lwip/port/netif/hurdtunif.c (tunnel_cntlclass, tunnel_class):
Likewise.
* mach-defpager/default_pager.c (all_partitions): Likewise.
* nfs/main.c (main_udp_socket, hostname, mapped_time): Likewise.
* nfsd/main.c (mapped_time, authserver): Likewise.
* pci-arbiter/main.c (fs, pcifs_maptime): Likewise.
* pci-arbiter/startup.c (*pci_shutdown_notify_class): Likewise.
* pfinet/main.c (pfinetctl, pfinet_owner, pfinet_group, pfinet_bucket,
addrport_class, socketport_class, fsys_identity): Likewise.
* proc/main.c (authserver, self_proc, init_proc, startup_proc,
proc_bucket, proc_class, generic_port_class, exc_class, generic_port,
kernel_proc, global_lock): Likewise.
* term/main.c (termstate, termflags, global_lock, carrier_alert,
select_alert, pty_select_alert, term_bucket, tty_cntl_class,
tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl,
outputq, remote_input_mode, external_processing, term_owner,
term_group, term_mode, bottom): Likewise.
* usermux/usermux.c (usermux_mapped_time): Rename to usermux_maptime.
* lwip/main.c: Include "options.h".
(lwip_argp, netif_list): Remove declarations.
(lwip_bucket, socketport_class, addrport_class, shutdown_notify_class,
lwip_cntl_portclasses, lwip_bootstrap_portclass, lwip_owner, lwip_group,
fsys_identity, lwipcntl): New variables.
* eth-multiplexer/multiplexer.c (multiplexer_maptime): Add variable.
* hostmux/hostmux.c (hostmux_mapped_time): Rename variable to hostmux_maptime
* libdiskfs/extra-version.c: Rename file to...
* libdiskfs/priv.c: ... new file.
(diskfs_shortcut_symlink, diskfs_shortcut_chrdev,
diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock,
diskfs_create_symlink_hook, diskfs_read_symlink_hook): Add weak
variables.
* libdiskfs/Makefile (OTHERSRCS): Replace extra-version.c with priv.c.
* libtrivfs/priv.c: New file.
* libtrivfs/Makefile (OTHERSRCS): Add priv.c
* libcons/extra-version.c: Rename file to...
* libcons/priv.c: ... new file.
* libcons/Makefile (SRCS): Replace extra-version.c with priv.c.
Fix build with #
|
|
|
|
|
|
| |
* libfshelp/fshelp.h (fshelp_rlock_po_fini): New inline function.
* libdiskfs/peropen-rele.c (diskfs_release_peropen): Call fshelp_rlock_po_fini.
* libnetfs/release-peropen.c (netfs_release_peropen): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2019-03-04 Svante Signell <svante.signell@gmail.com>
* file-lock.c: Make flock work regardless of the
mode in which the file was opened.
2019-02-12 Svante Signell <svante.signell@gmail.com>
* file-lock.c: Comment out "Make flock work without R or W mode"
2019-02-01 Svante Signell <svante.signell@gmail.com>
* Update copyright years.
* file-record-lock.c(diskfs_S_file_record_lock):
Don't set rendezvous to MACH_PORT_NULL.
2018-12-07 Svante Signell <svante.signell@gmail.com>
* Update copyright years.
* dir-lookup.c(diskfs_S_dir_lookup): Call fshelp_rlock_tweak()
with new last argument rendezvous = MACH_PORT_NULL.
* file-lock.c(diskfs_S_file_lock): Likewise.
* file-record-lock.c(diskfs_S_file_record_lock): Likewise.
(diskfs_S_file_record_lock): Add new argument mach_port_t rendezvous.
2017-01-05 Svante Signell <svante.signell@gmail.com>
* Update copyright years and headers.
2016-05-23 Svante Signell <svante.signell@gmail.com>
* file-lock-stat.c: Port from cthreads to libpthread.
* file-lock.c: Likewise.
* file-record-lock: Likewise.
2001-04-11 Neal H Walfield <neal@cs.uml.edu>
* Makefile (FSSRCS): Add file-record-lock.c.
* diskfs.h (struct peropen): Change the type of lock_status
from an int to a struct rlock_peropen.
(struct node): Change the type of userbox from a struct lock_box
to a struct rlock_box.
* dir-lookup.c (diskfs_S_dir_lookup): Use fshelp_rlock_tweak
as fshelp_acquire_lock is now depreciated.
* file-lock-stat.c (diskfs_S_file_lock_stat): Total rewrite
around the new record locking functions.
* file-lock.c (diskfs_S_file_lock): Total rewrite around the
new record locking functions.
* file-record-lock.c: New file. Implement
diskfs_S_file_record_lock.
* node-make.c (diskfs_make_node): Initialize userbox with
fshelp_rlock_init.
* peropen-make.c (diskfs_make_peropen): Initialize lock_status
using fshelp_rlock_po_init.
* peropen-rele.c (diskfs_release_peropen): Release lock_status
using fshelp_rlock_drop_peropen.
|
|
|
|
|
| |
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Remove duplicate
variable.
|
|
|
|
|
|
| |
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Do not call
fshelp_set_active_translator if fshelp_fetch_root returned an error
which is not ENOENT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* boot/boot.c: Replace char* with data_t.
* console-client/trans.c: Likewise.
* exec/exec.c: Likewise.
* ext2fs/storeinfo.c: Likewise.
* fatfs/inode.c: Likewise.
* fatfs/main.c: Likewise.
* isofs/inode.c: Likewise.
* libdiskfs/boot-start.c: Likewise.
* libdiskfs/dir-readdir.c: Likewise.
* libdiskfs/file-exec.c: Likewise.
* libdiskfs/file-get-fs-opts.c: Likewise.
* libdiskfs/file-get-trans.c: Likewise.
* libdiskfs/file-getfh.c: Likewise.
* libdiskfs/file-set-trans.c: Likewise.
* libdiskfs/fsys-forward.c: Likewise.
* libdiskfs/fsys-getfile.c: Likewise.
* libdiskfs/fsys-options.c: Likewise.
* libdiskfs/io-read.c: Likewise.
* libdiskfs/io-write.c: Likewise.
* libnetfs/dir-readdir.c: Likewise.
* libnetfs/file-exec.c: Likewise.
* libnetfs/file-get-fs-options.c: Likewise.
* libnetfs/file-get-storage-info.c: Likewise.
* libnetfs/file-get-translator.c: Likewise.
* libnetfs/file-set-translator.c: Likewise.
* libnetfs/fsstubs.c: Likewise.
* libnetfs/fsys-get-options.c: Likewise.
* libnetfs/fsys-set-options.c: Likewise.
* libnetfs/fsysstubs.c: Likewise.
* libnetfs/io-read.c: Likewise.
* libnetfs/io-write.c: Likewise.
* libtrivfs/dir-readdir.c: Likewise.
* libtrivfs/file-get-fs-options.c: Likewise.
* libtrivfs/file-get-storage-info.c: Likewise.
* libtrivfs/file-get-trans.c: Likewise.
* libtrivfs/file-getfh.c: Likewise.
* libtrivfs/file-set-trans.c: Likewise.
* libtrivfs/fsys-forward.c: Likewise.
* libtrivfs/fsys-get-options.c: Likewise.
* libtrivfs/fsys-set-options.c: Likewise.
* libtrivfs/fsys-stubs.c: Likewise.
* libtrivfs/io-read.c: Likewise.
* libtrivfs/io-write.c: Likewise.
* pfinet/io-ops.c: Likewise.
* pfinet/pfinet-ops.c: Likewise.
* pfinet/socket-ops.c: Likewise.
* pfinet/tunnel.c: Likewise.
* pflocal/io.c: Likewise.
* pflocal/pf.c: Likewise.
* pflocal/socket.c: Likewise.
* proc/info.c: Likewise.
* startup/startup.c: Likewise.
* storeio/io.c: Likewise.
* term/users.c: Likewise.
* tmpfs/node.c: Likewise.
* trans/crash.c: Likewise.
* trans/fakeroot.c: Likewise.
* trans/fifo.c: Likewise.
* trans/firmlink.c: Likewise.
* trans/hello-mt.c: Likewise.
* trans/hello.c: Likewise.
* trans/mtab.c: Likewise.
* trans/new-fifo.c: Likewise.
* trans/null.c: Likewise.
* trans/proxy-defpager.c: Likewise.
* trans/streamio.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libdiskfs/diskfs.h (protid_t): New type
(diskfs_S_io_write, diskfs_S_io_read, diskfs_S_io_seek,
diskfs_S_io_stat, diskfs_S_file_set_size,
diskfs_S_file_get_storage_info, diskfs_S_file_statfs): New prototypes.
* libnetfs/netfs.h (netfs_S_io_write, netfs_S_io_read, netfs_S_io_seek,
netfs_S_io_stat, netfs_S_file_set_size, netfs_S_file_get_storage_info,
netfs_S_file_statfs): New prototypes.
* libtrivfs/trivfs.h (trivfs_S_io_write, trivfs_S_io_read,
trivfs_S_io_seek, trivfs_S_io_stat, trivfs_S_file_set_size,
trivfs_S_file_get_storage_info, trivfs_S_file_statfs): New prototypes.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* isofs/rr.c: Include <sys/sysmacros.h>.
* libdiskfs/file-set-trans.c: Likewise.
* libfshelp/fetch-root.c: Likewise.
* libnetfs/file-get-translator.c: Likewise.
* libnetfs/file-set-translator.c: Likewise.
* nfs/nfs.c: Likewise.
* nfs/ops.c: Likewise.
* storeio/storeio.c: Likewise.
* trans/fakeroot.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We build hurd with LFS64, so we should always expose LFS64 types, so callers
do not have to build with -D_FILE_OFFSET_BITS=64.
* libdiskfs/diskfs.h (struct peropen): Make `filepointer' field type
`loff_t' instead of `off_t'.
(diskfs_cached_ifind): Make `inum' parameter `ino64_t' instead of
`ino_t'.
(diskfs_cached_lookup_context): Likewise.
* hurd/shared.h (strcut shared_io): Make `read_size', `prenotify_size',
`postnotify_size', `readnotify_size', `rd_file_pointer',
`wr_file_pointer', `xx_file_pointer', `file_size' fields type `loff_t'
instead of `off_t'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting from coreutils 8.30 which uses
renameat2(flag=RENAME_NOREPLACE), we need to have excl=1 to behave
correctly, notably in this case:
$ mkdir a
$ mkdir b
$ touch b/t
$ mv b a
diskfs_rename("b", "a", excl=1) called by mv shall return EEXIST.
* libdiskfs/diskfs.h (diskfs_rename_dir): Add `excl' parameter.
* doc/hurd.texi (diskfs_rename_dir): Document `excl' parameter.
* libdiskfs/dir-renamed.c (diskfs_rename_dir): Add `excl' parameter.
Return EEXIST when target exists and `excl' is not 0.
* libdiskfs/dir-rename.c (diskfs_S_dir_rename): Pass `excl' to
diskfs_rename_dir.
|
|
|
|
|
|
|
| |
POSIX requires ELOOP in that case.
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Return ELOOP instead of
EACCES when the result is a symlink and O_WRITE|O_EXEC was requested
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* isofs/rr.c (rrip_work): Use gnu_dev_makedev instead of makedev.
* libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Likewise.
* libnetfs/file-set-translator.c (netfs_S_file_set_translator):
Likeiwse.
* nfs/nfs.c (xdr_decode_fattr): Likewise.
* storeio/storeio.c (parse_opt): Likewise.
* libfshelp/fetch-root.c (fshelp_short_circuited_callback1): Use
gnu_dev_major and gnu_dev_minor instead of major and minor.
* libnetfs/file-get-translator.c (netfs_S_file_get_translator):
Likewise.
* nfs/ops.c (netfs_attempt_link): Likewise.
* storeio/storeio.c (trivfs_append_args): Likewise.
* trans/fakeroot.c (netfs_attempt_mkdev): Likewise.
* pfinet/glue-include/linux/mm.h: Include <mach/vm_param.h>.
* term/users.c: Include <signal.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and update the servers to use UTIME_NOW and UTIME_OMIT.
* console-client/trans.c (netfs_attempt_utimes): Do not set current time
ourself.
* console/console.c (netfs_attempt_utimes): Likewise.
* ftpfs/netfs.c (netfs_attempt_utimes): Likewise.
* hostmux/node.c (netfs_attempt_utimes): Likewise.
* usermux/node.c (netfs_attempt_utimes): Likewise.
* nfs/ops.c (netfs_attempt_utimes): Likewise.
* doc/hurd.texi (file_utimens): Add documentation.
* hurd/fs.defs (file_utimens): Add RPC.
* libdiskfs/file-utimes.c (diskfs_S_file_utimes): Move implementation
and replace with translation layer with...
(diskfs_S_file_utimens): ... new function.
* libnetfs/file-utimes.c (netfs_S_file_utimes): Likewise with...
(netfs_S_file_utimens): ... new function.
* libnetfs/init-init.c: Include <error.h>.
(netfs_mtime): New variable.
(netfs_init): New function.
* libnetfs/netfs.h (netfs_attempt_utimes): Update documentation.
* libnetfs/priv.h (netfs_mtime): Declare variable.
* libtreefs/s-file.c (treefs_S_file_utimes): Convert time values and
call treefs_s_file_utimens instead of treefs_s_file_utimes.
* libtreefs/treefs-hooks.h: Replace TREEFS_HOOK_S_FILE_UTIMES with
TREEFS_HOOK_S_FILE_UTIMENS.
* libtreefs/treefs-s-hooks.h: Replace s_file_utimes with s_file_utimens.
* libtrivfs/file-utimes.c (trivfs_S_file_utimens): New function.
* libtrivfs/times.c (trivfs_set_atime): Try to use file_utimens before
using file_utimes.
(trivfs_set_mtime): Likewise.
* nfsd/ops.c (complete_setattr): Likewise.
* trans/fakeroot.c (netfs_attempt_utimes): Likewise.
* nfs/nfs.c (xdr_encode_sattr_times): Do not set atime or mtime when
they are NULL.
* configure.ac: Look for file_futimens, and define UTIME_NOW/OMIT, for
compatibility with old glibcs.
|