mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-16 15:58:06 -04:00
feat(dwarfsck): readv() before context switch to speed up --checksum
This commit is contained in:
parent
0548454f64
commit
1ff2878e23
@ -110,8 +110,8 @@ void do_checksum(logger& lgr, filesystem_v2& fs, iolayer const& iol,
|
|||||||
|
|
||||||
fs.walk_data_order([&](auto const& de) {
|
fs.walk_data_order([&](auto const& de) {
|
||||||
auto iv = de.inode();
|
auto iv = de.inode();
|
||||||
|
|
||||||
if (iv.is_regular_file()) {
|
if (iv.is_regular_file()) {
|
||||||
wg.add_job([&, de, iv] {
|
|
||||||
file_stat st;
|
file_stat st;
|
||||||
|
|
||||||
if (fs.getattr(de.inode(), &st) != 0) {
|
if (fs.getattr(de.inode(), &st) != 0) {
|
||||||
@ -127,6 +127,7 @@ void do_checksum(logger& lgr, filesystem_v2& fs, iolayer const& iol,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wg.add_job([&, de, iv, ranges = std::move(ranges)]() mutable {
|
||||||
checksum cs(algo);
|
checksum cs(algo);
|
||||||
|
|
||||||
for (auto& fut : ranges.value()) {
|
for (auto& fut : ranges.value()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user