diff options
author | Josef Bacik <jbacik@fusionio.com> | 2013-05-09 19:49:30 +0200 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-18 03:40:15 +0200 |
commit | b1c79e0947e0c190f865e2eb7b84a0fea0021cec (patch) | |
tree | 30ab171c673a21d5506732bb6f9266235e2530fb /fs/btrfs/delayed-ref.h | |
parent | Btrfs: remove warn on in free space cache writeout (diff) | |
download | linux-b1c79e0947e0c190f865e2eb7b84a0fea0021cec.tar.xz linux-b1c79e0947e0c190f865e2eb7b84a0fea0021cec.zip |
Btrfs: handle running extent ops with skinny metadata
Chris hit a bug where we weren't finding extent records when running extent ops.
This is because we use the delayed_ref_head when running the extent op, which
means we can't use the ->type checks to see if we are metadata. We also lose
the level of the metadata we are working on. So to fix this we can just check
the ->is_data section of the extent_op, and we can store the level of the buffer
we were modifying in the extent_op. Thanks,
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/delayed-ref.h')
-rw-r--r-- | fs/btrfs/delayed-ref.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/delayed-ref.h b/fs/btrfs/delayed-ref.h index f75fcaf79aeb..70b962cc177d 100644 --- a/fs/btrfs/delayed-ref.h +++ b/fs/btrfs/delayed-ref.h @@ -60,6 +60,7 @@ struct btrfs_delayed_ref_node { struct btrfs_delayed_extent_op { struct btrfs_disk_key key; u64 flags_to_set; + int level; unsigned int update_key:1; unsigned int update_flags:1; unsigned int is_data:1; |