Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
21,942
-
4673
Description
In the upstream ext4 code there is a new functionality to allow a per-commit callback to be set
(j_commit_callback), which is used by the mballoc code to manage free space bitmaps after deleted
blocks have been released. It should be fairly straight forward to allow the j_commit_callback and
t_private_list to be multiplexed, by creating a new ext4_commit_callback() function that just walks
a list of function+data pointers attached to t_private_list, much like the jbd2-jcberr code
currently walks the callback list, and passes is_journal_aborted() as the callback error parameter.
A new ext4_journal_callback_set() function, using the same API as the existing
jbd2_journal_callback_set(), will maintain a list of function+data pointers on t_private_list, and
the current code that manipulates t_private_list directly would now call
ext4_journal_callback_set() with a modified release_blocks_on_commit() as the callback function
(taking a pointer to struct ext4_delete_entry as data, and only freeing one structure at a time).
Within the existing code, ext4_mb_free_metadata() is manually removing existing entries from the
callback list if they can be merged. This functionality doesn't currently exist, but it shouldn't
be hard to add an ext4_journal_callback_del() function to remove the entry from the list, if passed
the journal_callback struct, which would now be embedded into struct ext4_delete_entry instead of
just the list_head "list".
Attachments
Issue Links
- is related to
-
LU-753 kernel:LustreError: 4998:0:(filter_io_26.c:791:filter_commitrw_write()) LBUG
- Resolved
-
LU-20 patchless server kernel
- Resolved
-
LU-2761 rhel: use the upstream version of the journal callback patch
- Resolved
- Trackbacks
-
Unfunded Projects Status Whamcloud Engineering would like to add several features to Lustre that have not yet been funded by customers. We've started to allocate these projects to engineers to work on as time is available....
-
Changelog 2.2 version 2.2.0 Support for networks: o2iblnd OFED 1.5.4 Server support for kernels: 2.6.32220.4.2.el6 (RHEL6) Client support for unpatched kernels: 2.6.18274.18.1.el5 (RHEL5) 2.6.32220.4.2.el6 (RHEL6) 2.6.32.360....