فهرست منبع

count_snapshots: Properly update the leaf pointer after btrfs_next_leaf

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 17 سال پیش
والد
کامیت
bd09835d9a
2فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 2 2
      fs/btrfs/extent-tree.c
  2. 1 1
      fs/btrfs/inode.c

+ 2 - 2
fs/btrfs/extent-tree.c

@@ -693,7 +693,6 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root,
 	u64 root_objectid = root->root_key.objectid;
 	u64 root_objectid = root->root_key.objectid;
 	u32 total_count = 0;
 	u32 total_count = 0;
 	u32 cur_count;
 	u32 cur_count;
-	u32 refs;
 	u32 nritems;
 	u32 nritems;
 	int ret;
 	int ret;
 	struct btrfs_key key;
 	struct btrfs_key key;
@@ -729,8 +728,8 @@ again:
 	}
 	}
 
 
 	item = btrfs_item_ptr(l, path->slots[0], struct btrfs_extent_item);
 	item = btrfs_item_ptr(l, path->slots[0], struct btrfs_extent_item);
-	refs = btrfs_extent_refs(l, item);
 	while (1) {
 	while (1) {
+		l = path->nodes[0];
 		nritems = btrfs_header_nritems(l);
 		nritems = btrfs_header_nritems(l);
 		if (path->slots[0] >= nritems) {
 		if (path->slots[0] >= nritems) {
 			ret = btrfs_next_leaf(extent_root, path);
 			ret = btrfs_next_leaf(extent_root, path);
@@ -741,6 +740,7 @@ again:
 		btrfs_item_key_to_cpu(l, &found_key, path->slots[0]);
 		btrfs_item_key_to_cpu(l, &found_key, path->slots[0]);
 		if (found_key.objectid != bytenr)
 		if (found_key.objectid != bytenr)
 			break;
 			break;
+
 		if (found_key.type != BTRFS_EXTENT_REF_KEY) {
 		if (found_key.type != BTRFS_EXTENT_REF_KEY) {
 			path->slots[0]++;
 			path->slots[0]++;
 			continue;
 			continue;

+ 1 - 1
fs/btrfs/inode.c

@@ -208,7 +208,7 @@ again:
 		}
 		}
 
 
 		start = extent_end;
 		start = extent_end;
-	} else if (found_type == BTRFS_FILE_EXTENT_INLINE) {
+	} else {
 		goto not_found;
 		goto not_found;
 	}
 	}
 loop:
 loop: