Message ID | 9544841f53fef72784c0ec3f62c746063eb9ffb1.1675787102.git.josef@toxicpanda.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Error handling fixes | expand |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 2fd518afc4f3..09a3f7836400 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -3691,6 +3691,7 @@ int btrfs_orphan_cleanup(struct btrfs_root *root) trans = btrfs_start_transaction(root, 1); if (IS_ERR(trans)) { ret = PTR_ERR(trans); + iput(inode); goto out; } btrfs_debug(fs_info, "auto deleting %Lu", @@ -3698,8 +3699,10 @@ int btrfs_orphan_cleanup(struct btrfs_root *root) ret = btrfs_del_orphan_item(trans, root, found_key.objectid); btrfs_end_transaction(trans); - if (ret) + if (ret) { + iput(inode); goto out; + } continue; }
We missed a couple of iput()'s in the orphan cleanup failure paths, add them so we don't get refcount errors. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- fs/btrfs/inode.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)