diff options
author | Yan Zheng <zheng.yan@oracle.com> | 2009-07-24 11:06:53 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-07-24 11:22:47 -0400 |
commit | 0a4eefbb745ec0e8a5b694ae3f40cc34082d8f61 (patch) | |
tree | b8c144c52f2725fa05325f282d8d2e4edc2e7181 /fs/btrfs | |
parent | 1fcbac581be375ca0a686f72ee2b7fd1dbf386e7 (diff) |
Btrfs: Fix ordering of key field checks in btrfs_previous_item
Check objectid of item before checking the item type, otherwise we may return
zero for a key that is actually too low.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/ctree.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index 91572091c0a4..978449af4ccd 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c | |||
@@ -4296,10 +4296,10 @@ int btrfs_previous_item(struct btrfs_root *root, | |||
4296 | path->slots[0]--; | 4296 | path->slots[0]--; |
4297 | 4297 | ||
4298 | btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); | 4298 | btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); |
4299 | if (found_key.type == type) | ||
4300 | return 0; | ||
4301 | if (found_key.objectid < min_objectid) | 4299 | if (found_key.objectid < min_objectid) |
4302 | break; | 4300 | break; |
4301 | if (found_key.type == type) | ||
4302 | return 0; | ||
4303 | if (found_key.objectid == min_objectid && | 4303 | if (found_key.objectid == min_objectid && |
4304 | found_key.type < type) | 4304 | found_key.type < type) |
4305 | break; | 4305 | break; |