-
Notifications
You must be signed in to change notification settings - Fork 92
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
Implement mounting and unmounting for external journal device #61
Conversation
e174aaf
to
e4bbc01
Compare
5807d5c
to
1c9b940
Compare
CI pipeline complains the following:
|
Don't do this. You should simply run |
@jserv
|
Up to you. You should resolve the issue reported by GitHub Actions in advance. Later, you can create a new commit within the pull request (again, using |
I understand, I will take care of it. |
b9a0c50
to
72fd10e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update top-level README.md
for explaining journaling support.
8bbed92
to
44ebcab
Compare
44ebcab
to
409461d
Compare
409461d
to
d7f2d71
Compare
Can you provide journal specific test cases? |
@jserv Due to certain issues, unexpected errors occur after journal data during mount-remount operations. Therefore, this commit only addresses the mounting and unmounting of the external journal device. The journaling metadata part will be submitted in a pull request after thorough testing is completed. |
Then, you should consolidate the git commit message and address the known issue. We do still need some preliminary test cases. |
d7f2d71
to
53ae136
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the sake of Linux API changes, there are several implementation of simplefs_get_dev_journal
function. Move some common code in a helper function, which is independent from Linux kernel versions, so that we can shrink the lines of code.
53ae136
to
d84237e
Compare
d84237e
to
85cf38d
Compare
cdfe3bb
to
cf0d1bd
Compare
cf0d1bd
to
1d981b2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improve the git commit messages to consist of several complete English sentences.
This update introduces the following changes: 1. Added a function simplefs_parse_options in the fill super process to obtain the external journal device and configure it using jbd2 related functions. This allows the file system to correctly initialize and manage the external journal device. 2. Implemented additional functions in put_super to handle the journal device during the unmount process. This ensures that the journal device is properly managed and released when the file system is unmounted. 3. Added a make journal command in the Makefile. This new command allows users to create an external journal device image and mount it to simplefs, simplifying the setup and usage of the external journal. Future Work: Currently, the external journal device size is fixed at 8MB. To use a different size, corresponding variables in the code need to be modified. Additionally, support for an internal journal (inode journal) can be added in the future to further improve the file system's capabilities.
1d981b2
to
d0dbe63
Compare
Thank @jason50123 for contributing! |
This pull request continues from #59 (comment).
Due to some issues with Git, I have addressed them and created this new pull request.
Added a function simplefs_parse_options in the fill super process to obtain the external journal device and configure it using jbd2 related functions. Additionally, journal-related functionality was added to the write functions to record metadata "extent" information.
Also, added a "make journal" command in the Makefile, allowing users to create an external journal device image and mount it to simplefs.