summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
8 daysnfs: fix the handling of replies to MKNOD and SYMLINKHEADmasterMichael Kelly
The Linux NFS server does not accept a setting of file size to 0 for sockets and FIFOs so there is code to strip that for those cases. I also spotted that the file modification times were not being applied to a created file so there is now just one rpc to set all file attributes using xdr_encode_create_state(). This sets the times to be server time which is appropriate for a new file (even though it was created in the previous RPC call). The previous code was supplying the 'gid' based on that returned by the 'stat' but I don't think that can be relied on since the V3 protocol states that CREATE3 using EXCLUSIVE cannot guarantee any file attributes until after the SETATTR3.
8 daysnfs: generalise process_create_reply()Michael Kelly
to allow it to be used for MKNOD and SYMLINK rpc calls. These file types work differently to others in that a temporary file is created earlier and its 'struct node' is migrated to the new file later.  A few adjustments to the mutex locking to comply with the locking rules. A couple of mutex unlock errors spotted: not being unlocked on malloc failure and an unnecessary unlock in netfs_attempt_rename()
8 daysnfs: generalises the code for making a LOOKUP rpc callMichael Kelly
so that it can be used in a slightly different context in a following patch. I also removed the caching of rpc call results that were failed for errors other than ENOENT. For example, EPERM doesn't say anything about the lookup validity for other credentials that might be used.
8 daysnfs: generalise calling SETATTRMichael Kelly
12 daysvga: Also fallback to EGA when fb info is zeroSamuel Thibault
That e.g. happens with qemu -kernel option.
2025-07-14nfs: Implement --nfs-program command line option to enable v3 functionalityMichael Kelly
Note that I have altered the specification of the argument value so that the version can be specified without the program number rather than the other way around. I think it is much more likely the version would be specified than the program number.
2025-07-14nfs: couple of return code checksMichael Kelly
2025-07-14nfs: lookup root node handle specified by the mount serverMichael Kelly
to retrieve the true identity.
2025-07-14nfs: Use the variables for NFS program and NFS version rather than constants.Michael Kelly
2025-07-14nfs: mount_root: Fix and remove comment regarding getservbynameMichael Kelly
as its conclusion was valid and now implemented.
2025-07-14nfs: Implement statfs for V3.Michael Kelly
There was little overlap with the v2 code so it got an entirely separate implementation. There is the possibility of completing statfs.f_namelen properly using FSINFO3 and PATHCONF3 rpc calls but I didn't know if f_namelen should be the maximum length for a file name component or the entire file name path.
2025-07-14nfs: Removed inapplicable comment in netfs_report_access().Michael Kelly
2025-07-14nfs: nfs_attempt_rename() didn't unlock mutex after processing wcc_statMichael Kelly
2025-07-14nfs: nfs_attempt_rename() deadlocks performing an exclusive renameMichael Kelly
whilst attempting to lock an already held mutex.
2025-07-14nfs: nfs_attempt_lookup() did not unlock mutex on unlikely RPC init failureMichael Kelly
2025-07-13MAKEDEV: fix creating non-partstore nodesSamuel Thibault
We want to drop the slice part only in the partstore case. (but still want to change the device in case of USB disk)
2025-07-13MAKEDEV: Support /dev/ucd for USB cdromsSamuel Thibault
2025-07-13nfs: Fix netfs_attempt_create_file for nfsv3Michael Kelly
The v3 netfs_attempt_create_file() uses the 'exclusive' creation protocol which cannot specify the file permission bits or uid/gid. These need to be applied post-creation using SETATTR3. There was a missing call to do the chmod part  which I've added. Previously the call to chown that was present did not consider the return value. I have done so.
2025-07-13nfs: Fixes netfs_attempt_read() for nfsv3Michael Kelly
Use the 64 bit value required for v3 'offset' and process opaque_data part of the reply properly.
2025-07-13nfs: Fixes netfs_attempt_create_file() unlockingMichael Kelly
for unlikely case of RPC init failure and processing of v3 reply
2025-07-13nfs: Fix file creation for nfsv3Michael Kelly
This adds new code to process the reply from a file creation operation that applies equally to CREATE3, MKDIR3, SYMLINK3 and MKNOD3. RFC1813 permits a reply without the created file's handle and it might be necessary to perform a LOOKUP3 on the created file post-creation. Debian Linux NFSV3 server actually always returns the handle when compiling gnumach however I have tested the case where it might not by adding code (now removed) to pretend the handle wasn't present in the reply. I expect therefore that the 'skip_returned_stat' function that is added is rarely called. Fixed netfs_attempt_mkdir() to process the NFSv3 reply properly.
2025-07-12nfs: add support for NFSv3 in 'fetch_directory'Michael Kelly
2025-07-10nfs: Fix write encoding for v3Michael Kelly
2025-07-10nfs: Fix xdr_decode_fattr decoding for v3Michael Kelly
2025-07-10nfs: Clean xdr_encode/decode_64bitMichael Kelly
Better use the stdint. Also export them, they will be useful generally.
2025-07-10nfs: Fix pointer arithmeticMichael Kelly
2025-07-07procfs: Make /proc/stat multi-cpu awareDamien Zammit
This allows top to show Cpu0 to CpuN idle stats when you press 1. TESTED: on UP and SMP gnumach with debian hurd-i386. Message-ID: <20250707092520.62819-1-damien@zamaudio.com>
2025-07-03MAKEDEV: Fix substitution not supported by dashSamuel Thibault
2025-07-02rumpusbdisk: Protect against a running rumpusbdisk.staticSamuel Thibault
2025-07-01dev: Fix ud[0-9] device nameSamuel Thibault
2025-07-01rumpdisk: Allow rumpusbdisk operate even when gnumach operates SATASamuel Thibault
rumpusbdisk's driving of USB sticks won't interfere with gnumach operating SATA.
2025-07-01rumpdisk: Support dynamic linkage of librumpDamien Zammit
This provides a functional rumpdisk and rumpusbdisk with or without static linkage of librump. Message-ID: <20250701141609.152652-1-damien@zamaudio.com>
2025-07-01console: Fix hardcoded message sizes for 64b caseSamuel Thibault
2025-07-01console-client vga: Avoid using optimized string operations on vga_videomemSamuel Thibault
The VGA boards may not like AVX-whatnot-optimized 512B accesses. E.g. qemu does not support it and raises an invalid opcode trap.
2025-06-30console-client ncursesw: Fix confusion between color pair and video attributeSamuel Thibault
COLOR_PAIR takes a color pair, it does not produce one.
2025-06-30MAKEDEV: Add /dev/ud* nodesDamien Zammit
that pass through to /dev/usbdisk.
2025-06-22libpager: raise RLIMIT_AS if permissions allow usDiego Nieto Cid
* libpager/demuxer.c(pager_start_workers): set current and max RLIMIT_AS to RLIM_INFINITY when the current user has access to the privileged host port. Message-ID: <20250616225815.844-2-dnietoc@gmail.com>
2025-06-22acpi: Ignore irq 9 requests because PIIX3 ACPI is wrongv0.9.git20250622Damien Zammit
Fall back to bios defaults for requests for irq 9. Ideally we could check the PIIX3 bridge device exists on pci, but that would require pci access before pci-arbiter exists. This is a convenient workaround for now. Message-ID: <20250622073557.188295-1-damien@zamaudio.com>
2025-06-11xkb: Make compose table load failure non-fatalSamuel Thibault
2025-06-03term: Use speed_t typeSamuel Thibault
2025-06-03procfs: Also make swap size use long longsSamuel Thibault
2025-06-03procfs: Fix meminfo value size for BuffersSamuel Thibault
This was offsetting all values on the parameters stack
2025-05-10pflocal: Do not inherit PFLOCAL_SOCK_NONBLOCK across connect/accept.Ludovic Courtès
Previously, ‘accept’ would return an O_NONBLOCK socket if the listening socket was O_NONBLOCK at the time the connection was made. With this change, ‘accept’ always returns a socket where O_NONBLOCK is cleared.
2025-05-05Fix IRC network nameSamuel Thibault
2025-05-03libshouldbeinlibc: Use 64bit mapped time values in maptime_read when possibleZhaoming Luo
Use 64bit mapped time values in maptime_read when the kernel and the mapped_time_value structure in header file time_value.h support it. Otherwise step back to use the 32bit time. Message-ID: <20250503132808.15359-1-zhmingluo@163.com>
2025-04-28ext2fs: fix crash on ENOSPCSamuel Thibault
54c0b9b9dbf7 ("ext2fs: Trap trying to access bogus data areas") added checks on the allocated block number, but did not take care of the out-of-space condition, which callers of ext2_new_block and ext2_alloc_block know to handle.
2025-04-19libdiskfs: Fix catching exceptionsv0.9.git20250420Samuel Thibault
This fixes making diskfs_catch_exception recursive, catching the last fault exception, and fixes callers.
2025-04-19MAKEDEV: Do not mount a tmpfs on /dev/shm for nowSamuel Thibault
tmpfs loses files when they are unlinked but still mapped.
2025-04-02Comment fixedZhaoming Luo
Message-ID: <20250402092354.293338-1-zhmingluo@163.com>
2025-03-18ext2fs: Always clean just-allocated inodeSamuel Thibault
So that if we get a lazily-cleaned inode, we do not get disturbed by the values, notably i_file_acl and i_dir_acl were not cleaned, and i_block_group not checked. b0ff48880bb40 ("Formerly ialloc.c.~6~") introduced only setting dn_set_ctime when cleanup was missing, but we always want to set the ctime for a new inode anyway.