btrfs: simplify update of last_dir_index_offset when logging a directory
authorFilipe Manana <fdmanana@suse.com>
Tue, 10 Jan 2023 14:56:39 +0000 (14:56 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 6 Feb 2023 22:08:17 +0000 (23:08 +0100)
commit6afaed53cc9adde69d8a76ff5b4d740d5efbc54c
treeeb1819c0f2d59f6228f5fa7977db7c2c400094c7
parenta9ad4d87aa263de36895402b66115a3a4b88bf1c
btrfs: simplify update of last_dir_index_offset when logging a directory

When logging a directory, we always set the inode's last_dir_index_offset
to the offset of the last dir index item we found. This is using an extra
field in the log context structure, and it makes more sense to update it
only after we insert dir index items, and we could directly update the
inode's last_dir_index_offset field instead.

So make this simpler by updating the inode's last_dir_index_offset only
when we actually insert dir index keys in the log tree, and getting rid
of the last_dir_item_offset field in the log context structure.

Reported-by: David Arendt <admin@prnet.org>
Link: https://lore.kernel.org/linux-btrfs/ae169fc6-f504-28f0-a098-6fa6a4dfb612@leemhuis.info/
Reported-by: Maxim Mikityanskiy <maxtram95@gmail.com>
Link: https://lore.kernel.org/linux-btrfs/Y8voyTXdnPDz8xwY@mail.gmail.com/
Reported-by: Hunter Wardlaw <wardlawhunter@gmail.com>
Link: https://bugzilla.suse.com/show_bug.cgi?id=1207231
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=216851
CC: stable@vger.kernel.org # 6.1+
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tree-log.c
fs/btrfs/tree-log.h