inotify, faccessat2, fsync for Linux programs, and D-Bus credentials
What installing and starting Epiphany ran into: - inotify: inotify_init/init1, add_watch, rm_watch, as a new kind of event descriptor. The filesystem reports creates, deletes, renames (with a cookie pairing MOVED_FROM and MOVED_TO), writes, close-after-write, truncation and attribute changes, to watches on the inode and on its directory with the name. ONESHOT, MASK_ADD, MASK_CREATE, ONLYDIR, DONT_FOLLOW, IGNORED on removal, Q_OVERFLOW, and Linux's coalescing of repeated events. The hooks cost one load when nothing is watched. Without it GLib found no file monitor and GNOME programs aborted. - FIONREAD on inotify descriptors and pipes (inotifywait sizes its buffer by it). - fsync and fdatasync had no Linux numbers since the first commit: GLib's atomic writes, gtk-update-icon-cache and dbus-uuidgen all got ENOSYS. - faccessat2, the flags-taking faccessat musl uses for any flags. - sendmsg accepts SCM_CREDENTIALS when they are the sender's own, as Linux checks; GDBus sends them in every handshake and was refused with EINVAL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
parent
c77841ce3d
commit
3113eff7fe
9 changed files with 590 additions and 9 deletions
|
|
@ -213,8 +213,11 @@ SYSCALL(127, 92, chown)
|
|||
SYSCALL(128, 93, fchown)
|
||||
SYSCALL(129, 94, lchown)
|
||||
SYSCALL(130, 84, rmdir)
|
||||
SYSCALL(131, NO_LINUX, fsync)
|
||||
SYSCALL(132, NO_LINUX, fdatasync)
|
||||
// fsync and fdatasync had no Linux numbers from the first commit on, and
|
||||
// every Linux program that saves a file carefully got ENOSYS: GLib's atomic
|
||||
// file writes, gtk-update-icon-cache, dbus-uuidgen, apk's triggers.
|
||||
SYSCALL(131, 74, fsync)
|
||||
SYSCALL(132, 75, fdatasync)
|
||||
SYSCALL(133, 162, sync)
|
||||
SYSCALL(134, 17, pread)
|
||||
SYSCALL(135, 18, pwrite)
|
||||
|
|
@ -300,6 +303,11 @@ SYSCALL(207, 51, getsockname)
|
|||
SYSCALL(208, 52, getpeername)
|
||||
SYSCALL(209, 125, capget)
|
||||
SYSCALL(210, 126, capset)
|
||||
SYSCALL(211, 439, faccessat2)
|
||||
SYSCALL(212, 253, inotify_init)
|
||||
SYSCALL(213, 294, inotify_init1)
|
||||
SYSCALL(214, 254, inotify_add_watch)
|
||||
SYSCALL(215, 255, inotify_rm_watch)
|
||||
|
||||
// --- mounts ---
|
||||
SYSCALL(185, 165, mount)
|
||||
|
|
|
|||
Loading…
Reference in a new issue