]> www.infradead.org Git - users/jedix/linux-maple.git/commit
btrfs: do proper error handling in create_reloc_inode
authorJosef Bacik <josef@toxicpanda.com>
Fri, 12 Mar 2021 20:25:28 +0000 (15:25 -0500)
committerDavid Sterba <dsterba@suse.com>
Tue, 6 Apr 2021 19:07:06 +0000 (21:07 +0200)
commitf781e554050b85745040b8bd3bfb7c060bb71bf7
treef7377615f4f02de4ff39c4536603141461e32ff5
parentce5fe2a52f81b9d0dca7fff1d8c7d063d62ab899
btrfs: do proper error handling in create_reloc_inode

We already handle some errors in this function, and the callers do the
correct error handling, so clean up the rest of the function to do the
appropriate error handling.

There's a little extra work that needs to be done here, as we create the
inode item before we create the orphan item.  We could potentially add
the orphan item, but if we failed to create the inode item we would have
to abort the transaction.

Instead add a helper to delete the inode item we created in the case
that we're unable to look up the inode (this would likely be caused by
an ENOMEM), which if it succeeds means we can avoid a transaction abort
in this particular error case.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/relocation.c