summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-02-25pfinet: improve the mig mutator functionsJustus Winter
Previously, the mig mutator functions were in misc.c, preventing them from being inlined into the mig-generated server functions. Put them in mig-decls.h instead. Rename mutations.h to mig-mutate.h. This is the naming convention used for pflocal. * pfinet/mutations.h: Rename to mig-mutate.h, adopt imports. * pfinet/Makefile: Adopt accordingly. * pfinet/mig-decls.h: New file. * pfinet/misc.c: Move mutator functions to mig-decls.h. * pfinet/pfinet.h: Move type declarations to mig-decls.h, remove mutator declarations. * pfinet/iioctl-ops.c: Include mig-decls.h.
2014-02-25libdiskfs: fix receiver lookups in fsys server functionsJustus Winter
* libdiskfs/diskfs.h (struct diskfs_control): New declaration. (diskfs_begin_using_control_port): New declaration and function. (diskfs_end_using_control_port): Likewise. * libdiskfs/fsmutations.h: Add translation functions. * libdiskfs/priv.h (control_t): New type declaration for mig. * libdiskfs/boot-start.c: Fix receiver lookups. * libdiskfs/fsys-getfile.c: Likewise. * libdiskfs/fsys-getroot.c: Likewise. * libdiskfs/fsys-goaway.c: Likewise. * libdiskfs/fsys-options.c: Likewise. * libdiskfs/fsys-syncfs.c: Likewise.
2014-02-25libnetfs: fix receiver lookups in fsys server functionsJustus Winter
* mutations.h: Add translation functions. * netfs.h (struct netfs_control): New declaration. * priv.h: Define translation functions. * fsys-get-options.c: Fix receiver lookups. * fsys-getroot.c: Likewise. * fsys-goaway.c: Likewise. * fsys-set-options.c: Likewise. * fsys-syncfs.c: Likewise. * fsysstubs.c: Likewise.
2014-02-25New RPCs, fix buildJustus Winter
2014-02-25trans/mtab: do not map unknown source strings to "none"Justus Winter
Previously, map_device_to_path mapped unknown device strings to "none". Return a copy of the original source string instead so that e.g. nfs mount point points are properly handled. * trans/mtab.c (map_device_to_path): Do not map unknown source strings to "none".
2014-02-25tmpfs: set diskfs_disk_name to "none"Justus Winter
By default diskfs_disk_name is returned as the source of libdiskfs-based translators. Hurds fstab allows multiple entries with the mnt_fsname being "none". * tmpfs/tmpfs.c (diskfs_disk_name): Set to "none".
2014-02-25trans/mtab: ignore translators that do not implement file_get_sourceJustus Winter
Previously, the mtab translator would guess the source of a filesystem translator from its last argument. This made all kinds of non-filesystem translators appear in /proc/mounts, causing severe problems due to umount --all removing vital passive translator records. Fix this by ignoring all translators that do not explicitly implement file_get_source. * trans/mtab.c (mtab_populate): Ignore translators that do not implement file_get_source.
2014-02-25nfs: implement netfs_get_sourceJustus Winter
Implement netfs_get_source so that nfs translators show up in /proc/mounts. * nfs/main.c (netfs_get_source): New function.
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.
2014-02-25mach-defpager: improve the default_pager_demux_object functionJustus Winter
Handle multiple request types as recommended by the Mach Server Writer's Guide section 4, subsection "Handling Multiple Request Types". This avoids initializing the reply message in every X_server function. * mach-defpager/default_pager.c (default_pager_demux_object): Improve the demuxer function.
2014-02-25mach-defpager: add function mig_reply_setupJustus Winter
Currently, mig_reply_setup is not provided by libmachuser or the glibc. Provide it locally. * mach-defpager/default_pager.c (mig_reply_setup): New function.
2014-02-25mach-defpager: fix definition of seqnos_memory_object_data_unlockJustus Winter
* mach-defpager/default_pager.c (seqnos_memory_object_data_unlock): Fix function arguments.
2014-02-25libpager: improve the pager_demuxer functionJustus Winter
Handle multiple request types as recommended by the Mach Server Writer's Guide section 4, subsection "Handling Multiple Request Types". This avoids initializing the reply message in every X_server function. The reply message has already been properly initialized in libports, so there is no need to call mig_reply_setup. * libpager/demuxer.c (pager_demuxer): Improve the demuxer function.
2014-02-25utils/umount: do not remove passive translator recordsJustus Winter
Passive translator records are a Hurd concept. Therefore, the umount compatibility program should not remove them. * utils/umount.c (passive_flags): Unset FS_TRANS_SET. (doc): Adjust accordingly.
2014-02-25Fix fakeroot and remap parsing corner casesSamuel Thibault
Fix case when $PWD contains spaces. Pass directly arguments to command, to directly avoid escaping issues. Based on suggestion by Ivan Shmakov <oneingray@gmail.com> * utils/fakeroot.sh (TARGET): Do not define. (sh): Rather pass PWD and commandline as parameters. * utils/remap.sh: Likewise.
2014-02-23exec: provide a meaningful name for new tasksJustus Winter
The name will be used in error messages printed by the kernel. This makes attributing the errors to processes possible. * exec/exec.c (do_exec): Set the name of the new task.
2014-02-22pfinet: set a non-zero ports management timeoutRichard Braun
* pfinet/main.c (main): Call ports_manage_port_operations_multithread with non-zero timeouts.
2014-02-22libports: work around bugs in server terminationRichard Braun
Most servers use ports_manage_port_operations_multithread to process requests and terminate when it returns. Since many of them don't detach before shutting down, a client may receive an error if its request arrived while the server is shutting down. Prevent those spurious errors by forcing ports_manage_port_operations_multithread not to return. * libports/manage-multithread.c (ports_manage_port_operations_multithread): Force global_timeout to 0.
2014-02-19libstore: fixed some pointer-sign related warningsIgnazio Sgalmuzzo
libstore/do-bunzip2.c: fixed type modifier, avoiding cast
2014-02-18Add missing copyright noticeSamuel Thibault
2014-02-18libstore: replaced gz decompression code with libzIgnazio Sgalmuzzo
Note: dropped .zip support configure.ac: added check for libz ext2fs/Makefile: linked libz fatfs/Makefile: linked libz isofs/Makefile: linked libz libstore/Makefile: linked libz libstore/do-gunzip.c: new decompression function using libz calls. libstore/gunzip.c: removed no longer needed code replaced by do_gunzip() libstore/gzip.h: deleted, no longer needed libstore/inflate.c: deleted: no longer needed libstore/tailor.h: deleted: no longer needed libstore/unzip.c: deleted: no longer needed libstore/util.c: removed no longer needed code.
2014-02-18Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2014-02-18Add missing copyright noticeSamuel Thibault
2014-02-14libdiskfs: fix typoJustus Winter
* libdiskfs/boot-start.c (diskfs_S_fsys_init): Fix typo.
2014-02-13Add --font-width option to force 8/9 pixel font widthSamuel Thibault
This permits to choose between 720x400 or 640x400 textmode without changing the font. * console-client/vga-hw.h (VGA_ATTR_MODE_ADDR, VGA_ATTR_MODE_LGE, VGA_ATTR_ENABLE_ADDR): New macros. * console-client/vga-support.c (vga_state): Add `attr_mode' field. (vga_init): Save attribute mode subregister content. Re-enable the screen after that. (vga_fini): Restore attribute mode subregister content. Re-enable the screen after that. (vga_set_font_width): When the font width is set to 9, enable VGA LGE to properly handle box-drawing unicode characters. Re-nable the screen after that. (vga_exchange_palette_attributes): Use VGA_ATTR_ENABLE_ADDR macro instead of harcoded 0x20. * console-client/vga-dynafont.h (dynafont_new): Add `width' parameter. * console-client/vga-dynafont.c (dynafont): Add `width' field. (dynafont_new): Add `width' parameter, stored in `width' field of `df', but using the font bbox as default value. Use it to decide whether to use VGA LGE or not. (dynafont_activate): Use `width' field of `df' instead of the font bbox to configure the VGA glyph width. * console-client/vga.c (vga_display_font_width): New variable. (vga_display): New `df_width' field. (argp_option): New `font-width' option. (parse_opt): Handle `font-width' option. (vga_display_init): Copy `vga_display_font_width' to `disp'. (vga_display_start): Pass `df_width' to `dynafont_new'.
2014-02-12Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2014-02-12Fix typosSamuel Thibault
2014-02-10fatfs: add bz2 to OTHERLIBSJustus Winter
* fatfs/Makefile (OTHERLIBS): Add bz2.
2014-02-10isofs: add bz2 to OTHERLIBSJustus Winter
* isofs/Makefile (OTHERLIBS): Add bz2.
2014-02-09Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2014-02-09Replaced bz2 decompression code with libbz2Ignazio Sgalmuzzo
configure.ac: added check for libbz2 libstore/Makefile: linked libbz2 ext2fs/Makefile: linked libbz2 do-bunzip2.c: rewritten do_bunzip2 using libbz2 calls. Removed no longer needed functions.
2014-02-07trans/fakeroot: fix cached node retrieval on lookupRichard Braun
When a client finds a node from the hash table, it could happen that another thread is still holding one reference on it before the current thread has acquired its own. Simply checking for a non zero refcount isn't enough, the new client must atomically acquire its own reference. * trans/fakeroot.c (netfs_S_dir_lookup): Find and acquire node reference while holding netfs_node_refcnt_lock.
2014-02-06trans/fakeroot: fix netfs_S_dir_lookupRichard Braun
* trans/fakeroot.c (netfs_S_dir_lookup): Fix node dereference.
2014-02-05trans/fakeroot: rework node cachingRichard Braun
Instead of the FAKE_REFERENCE flag, rework node caching so that nodes are retained only if their attributes are actually changed. In addition, don't remove unreferenced nodes from the hash table at protid release, since their reference counter is unstable. Do it on node destruction, once the reference counter has reached 0. This means lookups can return nodes not referenced (other than by the hash table), a condition for which a check is added. By never acquiring a reference on such nodes, their counter is guaranteed to remain stable once unreferenced. * trans/fakeroot.c (FAKE_REFERENCE): Remove macro. (FAKE_DEFAULT): New macro. (set_default_attributes): New function. (set_faked_attribute): Likewise. (netfs_node_norefs): Remove node from hash table, properly taking care of all the locks involved. (fakeroot_netfs_release_protid): Remove node handling code, merely call netfs_release_protid. (netfs_S_dir_lookup): Handle unreferenced nodes, call set_default_attributes on node creation, remove call to netfs_attempt_chown. (netfs_attempt_chown): Call set_faked_attribute instead of accessing faked flags directly. (netfs_attempt_chauthor): Likewise. (netfs_attempt_chmod): Likewise. (main): Likewise.
2014-02-05trans/fakeroot: fix chmodRichard Braun
Unconditionally relay chmod requests instead of filtering those that don't change the executable bit. * trans/fakeroot.c (netfs_attempt_chmod): Unconditionally call file_chmod with an unaltered mode.
2014-02-05Revert "trans: fix locking issue in fakeroot"Richard Braun
This reverts commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4. That change is apparently not needed and introduced a deadlock. * trans/fakeroot.c (netfs_attempt_mkfile): Unlock directory node before creating new node.
2014-02-05trans/fakeroot: fix right leakRichard Braun
* trans/fakeroot.c (netfs_S_dir_lookup): Deallocate rights to intermediate file systems.
2014-02-05daemons/getty: always print a newline before the bannerJustus Winter
* daemons/getty.c (load_banner): Drop first newline from default banner. (print_banner): Print a newline.
2014-02-02exec: connect std{in,out,err} to the mach consoleJustus Winter
* exec/main.c (S_exec_init): Get the device master port and connect std{in,out,err} to the mach console.
2014-01-31daemons/getty: display /etc/issue if availableJustus Winter
Previously, a banner was hardcoded in Hurds getty. Load /etc/issue instead. Fall back to a hardcoded version if that fails. Expand common \char sequences. If no /etc/issue is provided, the old behavior is retained. * daemons/getty.c (load_banner): New function. (print_banner): Expand \char sequences.
2014-01-30Fix crash on fsysopts when pfinet has no IPv6Samuel Thibault
* pfinet/options.c (add_dev_opts): Use a for loop over `idev->addr_list' instead of a while loop which assumes that it is not empty.
2014-01-29pfinet: really deallocate device portSamuel Thibault
* pfinet/ethernet.c (ethernet_close): Call mach_port_deallocate on device port.
2014-01-28Also re-open Ethernet device on EMIG_SERVER_DIEDSamuel Thibault
* pfinet/ethernet.c (ethernet_xmit): Also call ethernet_close then ethernet_open on EMIG_SERVER_DIED error.
2014-01-28Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2014-01-28Make pfinet re-open ethernet device on transmission errorSamuel Thibault
* pfinet/ethernet.c (ethernet_close): New function. (ethernet_xmit): On EMACH_SEND_INVALID_DEST error, call ethernet_close and ethernet_open again to re-open ethernet device.
2014-01-26libnetfs: fix file locking on peropen releaseRichard Braun
* libnetfs/release-peropen.c (netfs_release_peropen): Release the lock on the underlying node if the peropen status indicates it's not unlocked.
2014-01-20proc: fix the receiver lookup in S_proc_exception_raiseJustus Winter
* proc/mgt.c (S_proc_exception_raise): Update accordingly. * proc/mig-decls.h: New file. * proc/proc_exc.defs: Add translation functions.
2014-01-20utils: include the mig-generated server headers in fakeauth.cJustus Winter
GNU MIG recently gained support for emitting x_server_routine declarations in the generated server header file. Using this declaration, the x_server_routine functions can be inlined into the demuxer function. * utils/fakeauth.c: Include the mig-generated server headers.
2014-01-20auth: include the mig-generated server headers in auth.cJustus Winter
GNU MIG recently gained support for emitting x_server_routine declarations in the generated server header file. Using this declaration, the x_server_routine functions can be inlined into the demuxer function. * auth/auth.c: Include the mig-generated server headers.
2014-01-20pflocal: include the mig-generated server headersJustus Winter
GNU MIG recently gained support for emitting x_server_routine declarations in the generated server header file. Using this declaration, the x_server_routine functions can be inlined into the demuxer function. * pflocal/demuxer.c: Include the mig-generated server headers. * pflocal/sserver.c: Likewise.