Hi

When first extent item in a block group isn't at beginning of that
block group,  blocks in the hole (at beginning of a block group) is
free.

Regards
YZ

diff -r 9cb5f0f5c713 extent-tree.c
--- a/extent-tree.c     Thu Aug 30 12:16:51 2007 -0400
+++ b/extent-tree.c     Tue Sep 11 22:59:56 2007 +0800
@@ -102,15 +102,14 @@ static int cache_block_group(struct btrf
                }
                if (btrfs_key_type(&key) == BTRFS_EXTENT_ITEM_KEY) {
                        if (!found) {
-                               last = key.objectid + key.offset;
+                               last = block_group->key.objectid;
                                found = 1;
-                       } else {
-                               hole_size = key.objectid - last;
-                               for (i = 0; i < hole_size; i++) {
-                                       set_radix_bit(extent_radix, last + i);
-                               }
-                               last = key.objectid + key.offset;
-                       }
+                       }
+                       hole_size = key.objectid - last;
+                       for (i = 0; i < hole_size; i++) {
+                               set_radix_bit(extent_radix, last + i);
+                       }
+                       last = key.objectid + key.offset;
                }
                path->slots[0]++;
        }
diff -r 9cb5f0f5c713 extent-tree.c
--- a/extent-tree.c	Thu Aug 30 12:16:51 2007 -0400
+++ b/extent-tree.c	Tue Sep 11 22:59:56 2007 +0800
@@ -102,15 +102,14 @@ static int cache_block_group(struct btrf
 		}
 		if (btrfs_key_type(&key) == BTRFS_EXTENT_ITEM_KEY) {
 			if (!found) {
-				last = key.objectid + key.offset;
+				last = block_group->key.objectid;
 				found = 1;
-			} else {
-				hole_size = key.objectid - last;
-				for (i = 0; i < hole_size; i++) {
-					set_radix_bit(extent_radix, last + i);
-				}
-				last = key.objectid + key.offset;
-			}
+			}
+			hole_size = key.objectid - last;
+			for (i = 0; i < hole_size; i++) {
+				set_radix_bit(extent_radix, last + i);
+			}
+			last = key.objectid + key.offset;
 		}
 		path->slots[0]++;
 	}
_______________________________________________
Btrfs-devel mailing list
[email protected]
http://oss.oracle.com/mailman/listinfo/btrfs-devel

Reply via email to