33a21e7578
The existing attempt for changing csum types is as the following: - Create a new temporary csum root - Generate new data csums into the temporary csum root - Drop the old csum tree and make the temporary one as csum root - Change the checksums for metadata in-place Unfortunately after some experiments, the csum root switch method has a big pitfall, the backref items in extent tree. Those backref items still point back to the old tree, meaning without a lot of extra tricks, the extent tree would be corrupted. Thus we have to go a new single tree variant: - Generate new data csums into the csum root The new data csums would have a different objectid to distinguish them. - Drop the old data csum items - Change the key objectids of the new csums - Change the checksums for metadata in-place This means unfortunately we have to revert most of the old code, and update the temporary item format. The new temporary item would only record the target csum type. At every stage we have a method to determine the progress, thus no need for an item, but in the future it's still open for change. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> |
||
---|---|---|
.. | ||
uapi | ||
README.md | ||
accessors.c | ||
accessors.h | ||
async-thread.c | ||
async-thread.h | ||
backref.c | ||
backref.h | ||
compression.h | ||
ctree.c | ||
ctree.h | ||
delayed-ref.c | ||
delayed-ref.h | ||
dir-item.c | ||
disk-io.c | ||
disk-io.h | ||
extent-io-tree.c | ||
extent-io-tree.h | ||
extent-tree.c | ||
extent_io.c | ||
extent_io.h | ||
file-item.c | ||
file-item.h | ||
file.c | ||
free-space-cache.c | ||
free-space-cache.h | ||
free-space-tree.c | ||
free-space-tree.h | ||
inode-item.c | ||
inode.c | ||
locking.c | ||
locking.h | ||
messages.c | ||
messages.h | ||
misc.h | ||
print-tree.c | ||
print-tree.h | ||
root-tree.c | ||
send.h | ||
transaction.c | ||
transaction.h | ||
tree-checker.c | ||
tree-checker.h | ||
tree-mod-log.h | ||
ulist.c | ||
ulist.h | ||
uuid-tree.c | ||
volumes.c | ||
volumes.h | ||
zoned.c | ||
zoned.h |
README.md
Shared sources with kernel
Status and progress of kernel/userspace synchronization.
- accessors.c - done, local changes
- accessors.h - done, local changes
- async-thread.c - done
- async-thread.h - done
- backref.c - todo
- backref.h - todo
- compression.h - done
- ctree.c - partial
- ctree.h - partial
- delayed-ref.c - partial
- delayed-ref.h - partial
- dir-item.c - partial
- disk-io.c - todo
- disk-io.h - todo
- extent_io.c
- extent_io.h
- extent-io-tree.c - done, local changes
- extent-io-tree.h - done, local changes
- extent-tree.c - todo
- file.c - todo
- file-item.c - todo
- file-item.h - partial
- free-space-cache.c - not needed
- free-space-cache.h - not needed
- free-space-tree.c - partial
- free-space-tree.h - partial
- inode.c - todo
- inode-item.c - partial
- locking.c - done, local changes
- locking.h - done, local changes
- messages.c - done, local changes
- messages.h - done, local changes
- misc.h - done
- print-tree.c - partial, sync to kernel
- print-tree.h - partial
- root-tree.c - partial
- root-tree.h - done
- send.h - done
- transaction.c - todo
- transaction.h - partial, local changes
- tree-checker.c - partial, local changes
- tree-checker.h - partial, local changes
- tree-mod-log.h - done, local changes
- ulist.c - done
- ulist.h - done
- uuid-tree.c - partial
- volumes.c - todo, local changes
- volumes.h - todo, local changes
- zoned.c - todo
- zoned.h - todo