summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-01-03 13:23:19 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:58 -0400
commitbd09835d9aad9c7b664cddc8435cc37b86077971 (patch)
tree3c73acd10104242fff27916b88fb7a68dbe652c5
parent98ed51747b63435b9987ef12692a75c223818bbe (diff)
downloadop-kernel-dev-bd09835d9aad9c7b664cddc8435cc37b86077971.zip
op-kernel-dev-bd09835d9aad9c7b664cddc8435cc37b86077971.tar.gz
count_snapshots: Properly update the leaf pointer after btrfs_next_leaf
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/extent-tree.c4
-rw-r--r--fs/btrfs/inode.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 4957cfa..b801eb4 100644
--- a/fs/btrfs/extent-tree.c
+++ b/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;
u32 total_count = 0;
u32 cur_count;
- u32 refs;
u32 nritems;
int ret;
struct btrfs_key key;
@@ -729,8 +728,8 @@ again:
}
item = btrfs_item_ptr(l, path->slots[0], struct btrfs_extent_item);
- refs = btrfs_extent_refs(l, item);
while (1) {
+ l = path->nodes[0];
nritems = btrfs_header_nritems(l);
if (path->slots[0] >= nritems) {
ret = btrfs_next_leaf(extent_root, path);
@@ -741,6 +740,7 @@ again:
btrfs_item_key_to_cpu(l, &found_key, path->slots[0]);
if (found_key.objectid != bytenr)
break;
+
if (found_key.type != BTRFS_EXTENT_REF_KEY) {
path->slots[0]++;
continue;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 8a2001b..6e2d036 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -208,7 +208,7 @@ again:
}
start = extent_end;
- } else if (found_type == BTRFS_FILE_EXTENT_INLINE) {
+ } else {
goto not_found;
}
loop:
OpenPOWER on IntegriCloud