diff options
author | Filipe Manana <fdmanana@suse.com> | 2017-07-18 20:34:02 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-07-19 20:38:16 +0200 |
commit | e33bf72361bdd764c827e160249a3e06d2a8e2fe (patch) | |
tree | caf6d7e4cb0a11c45d6879268265da6240d7177c /fs | |
parent | c3cfb656307583ddfea45375c10183737593c195 (diff) | |
download | linux-stable-e33bf72361bdd764c827e160249a3e06d2a8e2fe.tar.gz linux-stable-e33bf72361bdd764c827e160249a3e06d2a8e2fe.tar.bz2 linux-stable-e33bf72361bdd764c827e160249a3e06d2a8e2fe.zip |
Btrfs: fix dir item validation when replaying xattr deletes
We were passing an incorrect slot number to the function that validates
directory items when we are replaying xattr deletes from a log tree. The
correct slot is stored at variable 'i' and not at 'path->slots[0]', so
the call to the validation function was only correct for the first
iteration of the loop, when 'i == path->slots[0]'.
After this fix, the fstest generic/066 passes again.
Fixes: 8ee8c2d62d5f ("btrfs: Verify dir_item in replay_xattr_deletes")
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/tree-log.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index f20ef211a73d..3a11ae63676e 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -2153,8 +2153,7 @@ process_leaf: u32 this_len = sizeof(*di) + name_len + data_len; char *name; - ret = verify_dir_item(fs_info, path->nodes[0], - path->slots[0], di); + ret = verify_dir_item(fs_info, path->nodes[0], i, di); if (ret) { ret = -EIO; goto out; |