Patch I/O manager comment
parent
8bf3f6d012
commit
7548dd188c
|
@ -3,7 +3,6 @@
|
|||
* without recreating it.
|
||||
*
|
||||
* TODO bigalloc compatibility
|
||||
* TODO support undo, but not by undo_io_manager because it is VERY slow
|
||||
* TODO write some tests: for inode moving (image with many files),
|
||||
* for block moving, including extent blocks (one sparse file with many extents),
|
||||
* for block moving between different groups
|
||||
|
@ -29,9 +28,16 @@
|
|||
* s_free_inodes_count, s_inodes_per_group
|
||||
*
|
||||
* This is a highly destructive process and WILL leave a corrupted FS if interrupted.
|
||||
* So we should provide a rollback method. undo_io_manager is very slow, so maybe the
|
||||
* original idea should be implemented: create the "patch" i/o manager that writes all
|
||||
* changed blocks to a separate file and only then applies it.
|
||||
* So we should provide a rollback method. undo_io_manager is very slow, so instead of it
|
||||
* we use the "patch" i/o manager that first does not modify the filesystem directly, but
|
||||
* only writes changed blocks to a separate sparse "patch" file.
|
||||
*
|
||||
* The modifications can then be applied to the real filesystem using e2patch utility,
|
||||
* and if that process gets interrupted you can safely restart it and still get a consistent
|
||||
* filesystem state.
|
||||
*
|
||||
* Moreover, you can create an "undo" ("backup") patch before applying modifications,
|
||||
* also using e2patch utility.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
Loading…
Reference in New Issue