9p does not preserve O_DIRECT alignment when it breaks up requests into msize-chunks. Fix up tests: kern/t35: interrupt a dd, not a 'scrub', which uses O_DIRECT kern/t40: scrub a file demonstrating fallback to non-O_DIRECT works
Since no performance benefit has been demonstrated, remove mmap feature from ioctx to make code a bit simpler.
To ensure diod can always dump core, we added code to user.c to set the dumpable flag after altering capabilities, fsuid, fsgid, or groups. However, we only do this if the dumpable flag tested true before the change. This may be racy if another thread is executing the same code and has cleared the dumpable flag before the test.
This uses the unix domain socket feature recently added to exercise the server with multiple simultaneous connections.
Server now allows a listen address to be a path, e.g. diod -l /path/to/socket Mount helper will accept mount.diod /path/to/socket:aname dir Instead of passing this directly into the mount system call with trans=unix, we use trans=fd so the auth handshake can happen in user space, as with inet sockets. Dtop will accept a path as one of its hostlist elements, e.g. dtop -h /path/to/socket,host,... Diodcat, diodload now take -s server instead of -h host -p port, e.g. diodcat -s /path/to/socket or diodcat -s HOST:PORT The purpose of this is to allow tests that will create simultaneous connections (simulating many clients) without having to occupy an IP port that might be in conflict on a test system/build farm node. Tests will be added in a future commit.
The content of ctl:tpools including number of outstanding requests was part of the expected output. Avoid depending on this as the number of outstanding requests can change, e.g. on uniprocessor powerpc test system.
Removed ASSERT macro in libdiod and added NP_ASSERT macro in libnpfs. Now all server code will log assert messages to the configured log destination rather than lose them in some cases.
Previous attempt at fixing this in 1.0.8 was insufficient.
/dev/random blocks when insufficient entropy is available, which can be a pain when running tests on an otherwise idle system.
Upstream switched to hardwireed 9P open flags and translates from arch native linux flags to these flags. For x86_64, this is a no-op (bits are the same). It fixes potential incorrect bits when client != server arch.
When v9fs opens a file for writing based on g+w permissions (owner is different), it fails when it attempts to setattr the mtime to NOW without changing the atime. In cases where we have already acquired the CAP_DAC_OVERRIDE, also acquire CAP_FOWNER to work around this problem.
In spec file, build with CFLAGS="-Werror -g -O2" The -g is required to produce a debuginfo package with symbols. The effect of -O2 is unknown except that all non-root regression tests pass.
This enables 'make rpm' and 'make dist' to work properly.
Reference a user twice to hit user cache. Switch users to test user handing without DAC_BYPASS.
The upper portion of f_fsid is -1 on 32 bit systems. Allow that since its not a diod bug.
If set, statfs will return the host file system's f_type value. If clear, statfs will return f_type == V9FS_MAGIC. The default is to return V9FS_MAGIC.