Btrfs: fix key checks and advance in the search ioctl
authorChris Mason <chris.mason@oracle.com>
Thu, 18 Mar 2010 16:10:08 +0000 (12:10 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 18 Mar 2010 16:10:08 +0000 (12:10 -0400)
commitabc6e1341bda974e2d0eddb75f57a20ac18e9b33
tree399e587e8e94dd4ec2894f52f377a189a21ece2a
parent7fde62bffb576d384ea49a3aed3403d5609ee5bc
Btrfs: fix key checks and advance in the search ioctl

The search ioctl was working well for finding tree roots, but using it for
generic searches requires a few changes to how the keys are advanced.
This treats the search control min fields for objectid, type and offset
more like a key, where we drop the offset to zero once we bump the type,
etc.

The downside of this is that we are changing the min_type and min_offset
fields during the search, and so the ioctl caller needs extra checks to make sure
the keys in the result are the ones it wanted.

This also changes key_in_sk to use btrfs_comp_cpu_keys, just to make
things more readable.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ioctl.c