summaryrefslogtreecommitdiff
path: root/hurd/fs.defs
AgeCommit message (Collapse)Author
2019-10-29fs: Support for file record lockingSvante Signell
2019-02-01 Svante Signell <svante.signell@gmail.com> * Update copyright years. 2018-01-05 Svante Signell <svante.signell@gmail.com> * Update copyright years. * fs.defs: Add new argument rendezvous: mach_port_send_t to RPC file_record_lock. 2017-01-05 Svante Signell <svante.signell@gmail.com> * Update copyright years and headers. 2016-05-23 Svante Signell <svante.signell@gmail.com> * fs.defs: Added description. * hurd_types.defs: Make struct flock_t seven integers long since l_start and l_len are 64bit. * hurd_types.h: typedef flock_t as flock64. 2001-04-10 Neal H Walfield <neal@cs.uml.edu> * fs.defs: New RPC file_record_lock. * hurd_types.defs: Import <fcntl.h>.
2018-03-05Add file_utimens RPC to use a struct timespecFlávio Cruz
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.
2018-01-08Add a file_exec_file_name RPCEmilio Pozuelo Monfort
* hurd/fs.defs (file_exec): Deprecate in favor of... (file_exec_paths): ...this new RPC. * TODO: Update. * doc/hurd.texi: Update RPC name. * hurd/hurd_types.h: Update RPC name. * libdiskfs/boot-start.c: Update RPC name. * configure.ac: Check for presence of RPC stubs file_exec_paths exec_exec_paths. * exec/hashexec.c (check_hashbang): When file_exec_paths is available, use it instead of file_exec. * startup/startup.c (run, run_for_real, start_child): Likewise. * utils/login.c (main): Likewise. * libfshelp/start-translator-long.c (fshelp_start_translator_long): Likewise. * libdiskfs/file-exec.c (diskfs_S_file_exec): Move code to new function diskfs_S_file_exec_paths and call it. (diskfs_S_file_exec_paths): New function, use exec_exec_paths when available instead of exec_exec * libnetfs/file-exec.c (netfs_S_file_exec, netfs_S_file_exec_paths): Likewise. * trans/fakeroot.c (netfs_S_file_exec, netfs_S_file_exec_paths): Likewise. * libtrivfs/file-exec.c (trivfs_S_file_exec_paths): New function.
2017-09-12Traverse translator hierarchies using the fsys protocol.Justus Winter
Previously, we used the fs protocol to traverse the translator hierarchies. This, however, is conceptually flawed, because translators are bound to nodes, and a node can have zero or more links in the file system. Therefore, the previous method of returning a list of paths to the client and expecting them to be able to follow these to reach the child translators was always unreliable. Fix this by using the fsys protocol to traverse the hierarchy, and returning the control ports of all children. This is more robust, and also conceptually cleaner, because the fsys protocol is about translator linkage, hence this is the point to implement traversal. Also move the get source routine over. A per-node source really does not fit the reality of most translators, while a per-translator source makes sense in many cases. * hurd/fs.defs (file_get_children): Drop routine. (file_get_source): Likewise. * hurd/fsys.defs (fsys_get_children): New routine. (fsys_get_source): Likewise. * libdiskfs/Makefile (FSYSSRCS): Remove files, add files. * libdiskfs/file-get-children.c: Remove file. * libdiskfs/fsys-get-children.c: New file. * libdiskfs/file-get-source.c: Remove file. * libdiskfs/fsys-get-source.c: New file. * libfshelp/fshelp.h (fshelp_filter): Remove type. (fshelp_get_active_translators): Remove filter and prefix argument, return list of control ports. * libfshelp/translator-list.c (fshelp_get_active_translators): Likewise. * libnetfs/Makefile (FSSRCS): Move 'get-source.c' too OTHERSRCS. (FSYSSRCS): Remove files, add files. * libnetfs/file-get-children.c: Remove file. * libnetfs/fsys-get-children.c: New file. * libnetfs/file-get-source.c: Remove file. * libnetfs/fsys-get-source.c: New file. * libtrivfs/Makefile: Move 'get-source.c' too OTHERSRCS. (FSYSSRCS): Remove files, add files. * libtrivfs/file-get-children.c: Remove file. * libtrivfs/fsys-get-children.c: New file. * libtrivfs/file-get-source.c: Remove file. * libtrivfs/fsys-get-source.c: Add file. * trans/Makefile (mtab): Build client stubs until the libc has caught on. * trans/mtab.c (target_control): New variable. (insecure): Drop variable. (all_translators): Likewise. (MAX_DEPTH): New macro. (max_depth): New variable. (options): Remove '--insecure' and '--all-translators', add '--depth'. (parse_opt): Adapt accordingly. (trivsfs_append_args): Likewise. (main): Get the control port of the target translator, then drop privileges. (is_filesystem_translator): Remove function. (mtab_mark_as_seen): Simplify. Just check if the control port is known. (mtab_populate): Limit depth of recursion, adapt to traversing over the control ports, simplify. (open_hook): Remove scary comment, it is not applicable anymore because we no longer dir_lookup child translators.
2014-08-31hurd: fix semantic of file_get_childrenJustus Winter
When first introduced as fsys_get_children, it made sense to return the list of children using paths relative to the root of the filesystem that was queried. Making the get_children method part of the fsys protocol was a mistake that has since been corrected in 9366d6b2. Instead of returning paths relative to the root of the translator, return paths relative to the path of the receiving node. This fixes a problem with the mtab translator. Previously, the mtab translator invoked on a target that was not the root directory of a translator would compute invalid paths, e.g.: /hurd/mtab: /any/path/servers/socket/26 No such file or directory * hurd/fs.defs (file_get_children): Update comment. * libfshelp/translator-list.c (fshelp_get_active_translators): Add argument PREFIX. Filter entries not beginning with PREFIX if non-NULL, and omit PREFIX from the returned paths. * libfshelp/fshelp.h (fshelp_get_active_translators): Update comment accordingly. Also clarify that both FILTER and PREFIX can be NULL. * libdiskfs/file-get-children.c (diskfs_S_file_get_children): Update comment, pass prefix to fshelp_get_active_translators. * libnetfs/file-get-children.c (netfs_S_file_get_children): Likewise.
2014-02-25hurd: fix the get-children and get-source proceduresJustus Winter
* hurd/fs.defs: Add file_get_children and file_get_source. * hurd/fsys.defs: Remove fsys_get_children and fsys_get_source. * libdiskfs/fsys-get-children.c: Rename and adapt accordingly. * libdiskfs/fsys-get-source.c: Likewise. * libnetfs/fsys-get-children.c: Likewise. * libnetfs/fsys-get-source.c: Likewise. * libtrivfs/fsys-get-children.c: Likewise. * libtrivfs/fsys-get-source.c: Likewise. * libdiskfs/diskfs.h: Adapt prototype and comment. * libnetfs/netfs.h: Likewise. * libtrivfs/trivfs.h: Likewise. * libdiskfs/get-source.c: Adapt default implementation, provide diskfs_disk_name by default. * libnetfs/netfs.h: Adapt default implementation. * libtrivfs/get-source.c: Likewise. * libdiskfs/Makefile: Adapt accordingly. * libnetfs/Makefile: Likewise. * libtrivfs/Makefile: Likewise. * trans/symlink.c: Likewise. * trans/mtab.c: Likewise.
2002-06-132002-06-13 Roland McGrath <roland@frob.com>Roland McGrath
* fs.defs (dir_readdir): Revert AMOUNT type to int, since it's a count of entries and not a byte count.
2002-06-112002-06-08 Roland McGrath <roland@frob.com>Roland McGrath
* hurd_types.defs (loff_t, ino64_t): New types, 64 bits. (off_t): Type removed. (off_array_t): Use loff_t instead of off_t as base type. * hurd_types.h (off_array_t): Likewise. [_FILE_OFFSET_BITS != 64] (io_statbuf_t, fsys_statfsbuf_t): Define using struct stat64/statfs64 instead of struct stat/statfs. * io.defs (io_identity): Use ino64_t for FILENO. * fs.defs (file_set_size): off_t -> loff_t * fs_notify.defs (file_changed): Likewise. * io.defs (io_write, io_read, io_seek): Likewise. * io_request.defs: Likewise for those RPCs' *_request variants. * io_reply.defs: Likewise for those RPCs' *_reply variants. * hurd_types.defs (size_t): Remove type. * fs.defs (dir_readdir): Use vm_size_t for AMOUNT. * socket.defs (socket_send, socket_recv): Likewise. * pfinet.defs (pfinet_siocgifconf): Likewise. * io.defs (io_write, io_read, io_readable): Likewise. * io_request.defs: Likewise for those RPCs' *_request variants. * io_reply.defs: Likewise for those RPCs' *_reply variants.
2002-03-05doc/Marcus Brinkmann
2002-03-05 Marcus Brinkmann <marcus@gnu.org> * hurd.texi (Diskfs Callbacks): Refer to dir_lookup, not dir_pathtrans. Reported by James A Morrison <ja2morri@student.math.uwaterloo.ca>. fstests/ 2002-03-05 Marcus Brinkmann <marcus@gnu.org> * fstests.c (main): Call dir_lookup, not dir_pathtrans. Reported by James A Morrison <ja2morri@student.math.uwaterloo.ca>. hurd/ 2002-03-05 Marcus Brinkmann <marcus@gnu.org> * fs.defs: Refer to dir_lookup, not dir_pathtrans, in comments. * fsys.defs: Likewise. * hurd_types.h (enum retry_type): Likewise. Reported by James A Morrison <ja2morri@student.math.uwaterloo.ca>. libdiskfs/ 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>. libfshelp/ 2002-03-05 Marcus Brinkmann <marcus@gnu.org> * fshelp.h: Refer to dir_lookup, not dir_pathtrans, in comment. Reported by James A Morrison <ja2morri@student.math.uwaterloo.ca>.
2001-07-102001-07-11 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* fs.defs (routine file_get_storage_info): Add dealloc to all out parameters (PORTS, INTS, OFFSETS, DATA). (routine file_get_fs_options): Add dealloc to out parameter OPTIONS. * fsys.defs (routine fsys_get_options): Add dealloc to out parameter OPTIONS. * process.defs (routine proc_getprocinfo): Add dealloc to out paramter PROCINFO.
1999-10-111999-10-11 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* fs.defs (dir_readdir): Replace dealloc with dealloc[] on out data.
1999-01-31Sun Jan 31 18:21:58 1999 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* fs.defs (file_utimes): Extend documentation.
1998-08-10Thu Jul 30 10:38:30 1998 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* fs.defs (file_notice_changes, dir_notice_changes): Doc fix.
1998-07-15Wed Jul 15 10:37:44 1998 Thomas Bushnell, n/BSG <tb@mit.edu>Thomas Bushnell
* fs.defs (dir_lookup): Update interface specification in the comment to reflect current reality.
1997-02-14(file_reparent):Miles Bader
Renamed from dir_reparent.
1997-01-20(dir_reparent): Make PARENT a mach_port_t, not a file_t, so that librariesMiles Bader
that do type translations of file_t won't get bogus arguments for ports in other filesystems.
1996-05-06port_array_t -> portarray_t.Michael I. Bushnell
1996-05-06(file_get_storage_info): Change arguments & comment.Miles Bader
1996-05-06(file_sync): New parm `omit_metadata'.Michael I. Bushnell
(dir_link, dir_rename): Add parm `excl'.
1995-10-30(file_get_storage_info): New parm FLAGS.Michael I. Bushnell
1995-10-27(file_exec, file_set_translator): Add SCP to incoming variable sizedMichael I. Bushnell
arrays.
1995-10-27Added reply port option to all RPC's.Michael I. Bushnell
1995-10-27(file_get_fs_options): New RPC.Michael I. Bushnell
1995-10-27(file_invoke_translateo): Function deleted.Michael I. Bushnell
1995-10-12(file_exec): Remove dealloc[] keywords, and revert EXEC_TASK arg to task_tRoland McGrath
from mach_port_send_t. We cannot safely use dealloc ool or move rights with the current RPC system.
1995-10-07(file_exec): Add dealloc[] flag to most args.Roland McGrath
1995-10-06(file_get_storage_info): Change type of ADDRESSES to off_array_t.Miles Bader
Add ADDRESS_UNITS out parameter. (dir_link): Swap the DIR and FILE parameters.
1995-09-26Reoops.Michael I. Bushnell
1995-09-26Oops.Michael I. Bushnell
1995-09-26(file_get_storage_info): New RPC; use the slot that used to holdMichael I. Bushnell
file_pathconf.
1995-09-17(file_truncate): RPC renamed to file_set_size.Roland McGrath
1995-09-17(file_pathconf): RPC removed (replaced with skip).Roland McGrath
1994-10-07entered into RCSMichael I. Bushnell
1994-08-30Formerly fs.defs.~85~Roland McGrath
1994-08-26Formerly fs.defs.~84~Michael I. Bushnell
1994-07-12Formerly fs.defs.~83~Roland McGrath
1994-07-08Formerly fs.defs.~82~Michael I. Bushnell
1994-07-08Formerly fs.defs.~81~Roland McGrath
1994-06-16Formerly fs.defs.~80~Michael I. Bushnell
1994-06-16Formerly fs.defs.~79~Roland McGrath
1994-06-16Formerly fs.defs.~78~Michael I. Bushnell
1994-04-29Formerly fs.defs.~77~Michael I. Bushnell
1994-03-25Formerly fs.defs.~76~Michael I. Bushnell
1994-02-17Formerly fs.defs.~75~Michael I. Bushnell
1994-02-05Formerly fs.defs.~74~Michael I. Bushnell
1994-02-04Formerly fs.defs.~73~Michael I. Bushnell
1994-02-01Formerly fs.defs.~72~Michael I. Bushnell
1994-02-01Formerly fs.defs.~71~Michael I. Bushnell
1993-12-07Formerly fs.defs.~70~Michael I. Bushnell
1993-11-23Formerly fs.defs.~69~Michael I. Bushnell