https://git.reactos.org/?p=reactos.git;a=commitdiff;h=90ac794bf284f4c2b78b532dc02fcf9275783209

commit 90ac794bf284f4c2b78b532dc02fcf9275783209
Author:     maharmstone <m...@harmstone.com>
AuthorDate: Tue Oct 8 15:50:58 2019 +0100
Commit:     Hermès BÉLUSCA - MAÏTO <hermes.belusca-ma...@reactos.org>
CommitDate: Tue Oct 8 16:50:57 2019 +0200

    [FREELDR] Handle Btrfs sparse extents (#1959)
---
 boot/freeldr/freeldr/lib/fs/btrfs.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/boot/freeldr/freeldr/lib/fs/btrfs.c 
b/boot/freeldr/freeldr/lib/fs/btrfs.c
index aa12d0e066c..16a861427c4 100644
--- a/boot/freeldr/freeldr/lib/fs/btrfs.c
+++ b/boot/freeldr/freeldr/lib/fs/btrfs.c
@@ -687,6 +687,13 @@ static u64 btrfs_read_extent_reg(struct btrfs_path *path, 
struct btrfs_file_exte
     if (size > dlen - offset)
         size = dlen - offset;
 
+    /* Handle sparse extent */
+    if (extent->disk_bytenr == 0 && extent->disk_num_bytes == 0)
+    {
+        RtlZeroMemory(out, size);
+        return size;
+    }
+
     physical = logical_physical(extent->disk_bytenr);
     if (physical == INVALID_ADDRESS)
     {

Reply via email to