Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filesystem refactoring #24

Closed
pwmarcz opened this issue May 26, 2021 · 2 comments
Closed

Filesystem refactoring #24

pwmarcz opened this issue May 26, 2021 · 2 comments
Assignees
Labels
enhancement New feature or request P: 1

Comments

@pwmarcz
Copy link
Contributor

pwmarcz commented May 26, 2021

This describes the current state of my filesystem refactoring project.

Legend:

✔️ Done (merged to master)
🚧 In progress (usually has a PR open)
⭐ Next (usually will be unlocked by current "in progress")

Bug fixes and new features

✔️ gramineproject/graphene#952 Listing a directory doesn't show mountpoints
✔️ lseek on directories (PR gramineproject/graphene#2406)
✔️ Fix /proc code (will fix gramineproject/graphene#948, gramineproject/graphene#1387; PR gramineproject/graphene#2453)
✔️ Fix lseek overflow on big offsets (PR gramineproject/graphene#2478)
✔️ File locking (fcntl) (will fix gramineproject/graphene#437) (PR gramineproject/graphene#2481)
✔️ Fix poll on pseudo-handles (PR gramineproject/graphene#2498) (found in gramineproject/graphene#2419)
✔️ Fix crashes after mknod on path reuse (PR gramineproject/graphene#2499) (found in gramineproject/graphene#2419)
🚧 Investigate the master list of issues (gramineproject/graphene#1803): probably will lead to more minor bug fixes.
Symlinks (will fix gramineproject/graphene#516): as in-memory files emulated by Graphene

Detailed list

Multi-process synchronization

✔️ Initial design and discussion (gramineproject/graphene#2158)
✔️ Prototype in Python to clarify the API (https://github.com/pwmarcz/fs-demo)
✔️ Proof of concept: FD position sync (PR gramineproject/graphene#2264, gramineproject/graphene#2267)
✔️ File locking (fcntl) (will fix gramineproject/graphene#437) (PR gramineproject/graphene#281, gramineproject/graphene#2522)
✔️ Fix mknod crash (PR gramineproject/graphene#2499)
Synchronize dentry cache

Dentry/low level filesystem cleanup

✔️ Initial design and discussion (issue gramineproject/graphene#2321)
✔️ Rewrite low-level dentry functions (PR gramineproject/graphene#2324)
✔️ Remove ino (PR gramineproject/graphene#2374)
✔️ Make mode and type functional (PR gramineproject/graphene#2379)
✔️ Simplify readdir (PR gramineproject/graphene#2383)
✔️ Change treatment of synthetic files (pipes, sockets) - needed for changing mount semantics (PR gramineproject/graphene#2402)
✔️ Change mount semantics (don't overwrite existing dentries by mount) (PR gramineproject/graphene#2370)
✔️ Rewrite pseudo-filesystems (PR gramineproject/graphene#2453)
✔️ Remove qstr (PR gramineproject/graphene#2585, #267 )
✔️ Handle unlink and rename correctly
✔️ Migrate to inodes: this will take several steps, but should unblock further changes (PR gramineproject/graphene#2646, #5, issue #279)
Make sure dentry stores stat data; remove mode() and stat() operations
Remove lseek() operation (don't pass it through to underlying filesystem)
Clear semantics for remaining filesystem operations (issue #279)

Path lookup

✔️ Rewrite path handling (PR gramineproject/graphene#2342)
✔️ Rewrite path lookup logic (PR gramineproject/graphene#2333, gramineproject/graphene#2354)

@pwmarcz pwmarcz changed the title [WIP] Filesystem refactoring Filesystem refactoring May 27, 2021
@mkow mkow transferred this issue from gramineproject/graphene Sep 10, 2021
@dimakuv dimakuv added enhancement New feature or request P: 1 labels Sep 23, 2021
@pwmarcz pwmarcz mentioned this issue Dec 14, 2021
@dimakuv
Copy link

dimakuv commented Jun 20, 2022

@pwmarcz Is this meta-issue completely done? Can it be closed?

@pwmarcz
Copy link
Contributor Author

pwmarcz commented Jun 20, 2022

I think so. I will not be continuing this project, and the remaining items are either very hard (such as synchronization) or not urgent (symlinks).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P: 1
Projects
None yet
Development

No branches or pull requests

2 participants