btrfs: fix NULL pointer dereference in do_abort_log_replay()

Coverity reported a NULL pointer dereference issue (CID 1666756) in
do_abort_log_replay(). When btrfs_alloc_path() fails in
replay_one_buffer(), wc->subvol_path is NULL, but btrfs_abort_log_replay()
calls do_abort_log_replay() which unconditionally dereferences
wc->subvol_path when attempting to print debug information. Fix this by
adding a NULL check before dereferencing wc->subvol_path in
do_abort_log_replay().

Fixes: 2753e4917624 ("btrfs: dump detailed info and specific messages on log replay failures")
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Suchit Karunakaran <suchitkarunakaran@gmail.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

authored by Suchit Karunakaran and committed by David Sterba 530e3d4a cefd8092

Changed files
+1 -1
fs
btrfs
+1 -1
fs/btrfs/tree-log.c
··· 190 190 191 191 btrfs_abort_transaction(wc->trans, error); 192 192 193 - if (wc->subvol_path->nodes[0]) { 193 + if (wc->subvol_path && wc->subvol_path->nodes[0]) { 194 194 btrfs_crit(fs_info, 195 195 "subvolume (root %llu) leaf currently being processed:", 196 196 btrfs_root_id(wc->root));