diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-01-03 09:08:27 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:58 -0400 |
commit | 56b453c92fdf51fd3283a2dc2dfbedf36f516031 (patch) | |
tree | 273b7fa9f03f61f6241f722ffa6ff5a3eb64736d /fs/btrfs/extent-tree.c | |
parent | 8f662a76c6af8eb367fa519e9bb9766040d9cea8 (diff) |
Btrfs: Explicitly send a root objectid to count_snapshots_in_path
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index d6243c2afc73..91c2b27d9689 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -688,7 +688,7 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root, | |||
688 | struct btrfs_path *path; | 688 | struct btrfs_path *path; |
689 | u64 bytenr; | 689 | u64 bytenr; |
690 | u64 found_objectid; | 690 | u64 found_objectid; |
691 | u64 root_objectid = 0; | 691 | u64 root_objectid = root->root_key.objectid; |
692 | u32 total_count = 0; | 692 | u32 total_count = 0; |
693 | u32 cur_count; | 693 | u32 cur_count; |
694 | u32 refs; | 694 | u32 refs; |
@@ -749,15 +749,11 @@ again: | |||
749 | struct btrfs_extent_ref); | 749 | struct btrfs_extent_ref); |
750 | found_objectid = btrfs_ref_root(l, ref_item); | 750 | found_objectid = btrfs_ref_root(l, ref_item); |
751 | 751 | ||
752 | if (found_objectid != root_objectid) | 752 | if (found_objectid != root_objectid) { |
753 | total_count++; | 753 | total_count = 2; |
754 | 754 | break; | |
755 | if (total_count > 1) | 755 | } |
756 | goto out; | 756 | total_count = 1; |
757 | |||
758 | if (root_objectid == 0) | ||
759 | root_objectid = found_objectid; | ||
760 | |||
761 | path->slots[0]++; | 757 | path->slots[0]++; |
762 | } | 758 | } |
763 | if (cur_count == 0) { | 759 | if (cur_count == 0) { |