Backref walking utilities
Hi,
As one of my plans, I'm going to take this project over unless someone has been working on it.
Quoted 1 line
From wiki, quote:
Backref walking utilities
Given a block number on a disk, the Btrfs metadata can find all the files and directories that use or care about that block. Some utilities to walk these back refs and print the results would help debug corruptions.
Given an inode, the Btrfs metadata can find all the directories that point to the inode. We should have utils to walk these back refs as well.
end quote.
And I have some thoughts to share with you:
- Clearly, this is going to be another command. Just like the command "btrfs-debug-tree", btrfs-walk-backref also needs to be able to track btrfs's metadata in
a) the offline situation (at a umount state), or
b) the corrupted situation.
- For block number, the main goal is to find relative extent backrefs. When it comes to those shared blocks, maybe things will be more complex.
- For inode, the main goal is to find relative inode refs. And we should be cautious about
a) an inode with hard links, b) snapshot.
Did I miss or misunderstand something? Any comments are welcomed. :)
thanks,
liubo
Hi liubo,
Quoted 1 line · liubo
As one of my plans, I'm going to take this project over unless someone has been working on it.
Jan Schmidt has a patch for scrub nearly ready, that does some ref-walking to report affected files to the user. While this is kernel code and you're planning to add user-space code, it might still be possible to share some of it. Maybe the efforts can be coordinated.
Thanks
Arne
Quoted 33 lines
Quoted 2 lines
From wiki, quote:
Backref walking utilities
Given a block number on a disk, the Btrfs metadata can find all the files and directories that use or care about that block. Some utilities to walk these back refs and print the results would help debug corruptions.
Given an inode, the Btrfs metadata can find all the directories that point to the inode. We should have utils to walk these back refs as well.
end quote.And I have some thoughts to share with you:
- Clearly, this is going to be another command. Just like the command "btrfs-debug-tree", btrfs-walk-backref also needs to be able to track btrfs's metadata in
a) the offline situation (at a umount state), or
b) the corrupted situation.- For block number, the main goal is to find relative extent backrefs. When it comes to those shared blocks, maybe things will be more complex.
- For inode, the main goal is to find relative inode refs. And we should be cautious about
a) an inode with hard links, b) snapshot.Did I miss or misunderstand something? Any comments are welcomed. :)
thanks,
liubo
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 10 lines · Arne Jansen
Hi liubo,
Quoted 1 line · liubo
As one of my plans, I'm going to take this project over unless someone has been working on it.
Jan Schmidt has a patch for scrub nearly ready, that does some ref-walking to report affected files to the user. While this is kernel code and you're planning to add user-space code, it might still be possible to share some of it. Maybe the efforts can be coordinated.
Another use for walking backrefs for a block (or an extent) is to
work out the differential size of a snapshot -- i.e. how much space will be freed up if the snapshot is deleted. (You need to look at every extent of every file in the snapshot, and work out whether those extents are used anywhere outside the subvolume).
Hugo.
Quoted 32 lines
Thanks
ArneQuoted 29 lines
Quoted 2 lines
From wiki, quote:
Backref walking utilities
Given a block number on a disk, the Btrfs metadata can find all the files and directories that use or care about that block. Some utilities to walk these back refs and print the results would help debug corruptions.
Given an inode, the Btrfs metadata can find all the directories that point to the inode. We should have utils to walk these back refs as well.
end quote.And I have some thoughts to share with you:
- Clearly, this is going to be another command. Just like the command "btrfs-debug-tree", btrfs-walk-backref also needs to be able to track btrfs's metadata in
a) the offline situation (at a umount state), or
b) the corrupted situation.- For block number, the main goal is to find relative extent backrefs. When it comes to those shared blocks, maybe things will be more complex.
- For inode, the main goal is to find relative inode refs. And we should be cautious about
a) an inode with hard links, b) snapshot.Did I miss or misunderstand something? Any comments are welcomed. :)
thanks,
liubo
Signature · 4 lines
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
--- We are all lying in the gutter, but some of us are looking ---
at the stars. Quoted 10 lines · Arne Jansen
Hi liubo,
Quoted 1 line · liubo
As one of my plans, I'm going to take this project over unless someone has been working on it.
Jan Schmidt has a patch for scrub nearly ready, that does some ref-walking to report affected files to the user. While this is kernel code and you're planning to add user-space code, it might still be possible to share some of it. Maybe the efforts can be coordinated.
The patches are ready and should be flexible enough to use for your purpose. However I use them in context of the scrub code, thus I'm planning to send them out as soon as the current version of scrub is included in Chris' master.
If anybody wants to test the patches before that (apply well against Arnes scrub branch), drop me an email.
-Jan
Quoted 11 lines · Jan Schmidt
Quoted 9 lines · Arne Jansen
Hi liubo,
Quoted 1 line · liubo
As one of my plans, I'm going to take this project over unless someone has been working on it.
Jan Schmidt has a patch for scrub nearly ready, that does some ref-walking to report affected files to the user. While this is kernel code and you're planning to add user-space code, it might still be possible to share some of it. Maybe the efforts can be coordinated.
Quoted 8 lines
The patches are ready and should be flexible enough to use for your purpose. However I use them in context of the scrub code, thus I'm planning to send them out as soon as the current version of scrub is included in Chris' master.
If anybody wants to test the patches before that (apply well against Arnes scrub branch), drop me an email.
I'd like to have a look ahead. Would you please give the address of these patches?
thanks,
liubo
Quoted 6 lines
-Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html