btrfs: DEFINE_FREE for struct btrfs_path
authorLeo Martins <loemra.dev@gmail.com>
Tue, 3 Sep 2024 18:19:05 +0000 (11:19 -0700)
committerDavid Sterba <dsterba@suse.com>
Tue, 10 Sep 2024 14:51:22 +0000 (16:51 +0200)
commit4c74a32ad323f89ac99b0f147e331f6ead100efa
tree2225f15fd8d04d104df1030e841e3df8e6dab54e
parentab6eac7c9111b75fca243e2590a17b55e96e9d31
btrfs: DEFINE_FREE for struct btrfs_path

Add a DEFINE_FREE for struct btrfs_path. This defines a function that
can be called using the __free attribute. Define a macro
BTRFS_PATH_AUTO_FREE to make the declaration of an auto freeing path
very clear.

The intended use is to define the auto free of path in cases where the
path is allocated somewhere at the beginning and freed either on all
error paths or at the end of the function.

  int func() {
  BTRFS_PATH_AUTO_FREE(path);

  if (...)
  return -ERROR;

  path = alloc_path();

  ...

  if (...)
  return -ERROR;

  ...
  return 0;
  }

Signed-off-by: Leo Martins <loemra.dev@gmail.com>
[ update changelog ]
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h