1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:47:34 +00:00

Kernel: Wrap two VirtualFileSystem directory traversals in TRY()

This commit is contained in:
Andreas Kling 2021-09-06 20:30:18 +02:00
parent 1101994fad
commit 0d44cdb7a2

View file

@ -462,12 +462,10 @@ KResult VirtualFileSystem::rename(StringView old_path, StringView new_path, Cust
if (old_inode.index() != new_inode.index() && old_inode.is_directory() && new_inode.is_directory()) { if (old_inode.index() != new_inode.index() && old_inode.is_directory() && new_inode.is_directory()) {
size_t child_count = 0; size_t child_count = 0;
auto traversal_result = new_inode.traverse_as_directory([&child_count](auto&) { TRY(new_inode.traverse_as_directory([&child_count](auto&) {
++child_count; ++child_count;
return child_count <= 2; return child_count <= 2;
}); }));
if (traversal_result.is_error())
return traversal_result;
if (child_count > 2) if (child_count > 2)
return ENOTEMPTY; return ENOTEMPTY;
} }
@ -707,12 +705,10 @@ KResult VirtualFileSystem::rmdir(StringView path, Custody& base)
} }
size_t child_count = 0; size_t child_count = 0;
auto traversal_result = inode.traverse_as_directory([&child_count](auto&) { TRY(inode.traverse_as_directory([&child_count](auto&) {
++child_count; ++child_count;
return true; return true;
}); }));
if (traversal_result.is_error())
return traversal_result;
if (child_count != 2) if (child_count != 2)
return ENOTEMPTY; return ENOTEMPTY;