Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • K kernel
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 23
    • Issues 23
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • redox-osredox-os
  • kernel
  • Merge requests
  • !198

Remove SYS_CHMOD and cwd related syscalls/files.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged 4lDO2 requested to merge 4lDO2/kernel:userspace_cwd into master Aug 12, 2022
  • Overview 0
  • Commits 3
  • Pipelines 0
  • Changes 7

This moves each context's cwd state into somewhere in relibc. Thus, the kernel enforces that paths contain a scheme part in every SYS_OPEN call (it doesn't check for . and .., but schemes will still not have to handle those and can simply ENOENT if they find any. It might also be a good idea to not modify the paths if they do contain . and/or .., as userspace might for example want to support arbitrary paths.

The rationale for removing SYS_CHMOD is that it has been deprecated for three years (since 0.1.55), and has long since had a relibc replacement using fchmod. Removing chmod is nothing in terms of ABI compatibility compared to removing fexec and clone.

This reduces the number of filesystem operations started by the kernel, and simplifies future completion-based I/O (read: io_uring), a lot.

Blocked on syscall!71 (merged)

Edited Aug 16, 2022 by 4lDO2
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: userspace_cwd