All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] btrfs: zoned: fix leak of zone_info in btrfs_get_dev_zone_info
@ 2021-12-10 11:32 Johannes Thumshirn
  2021-12-10 11:44 ` David Sterba
  0 siblings, 1 reply; 3+ messages in thread
From: Johannes Thumshirn @ 2021-12-10 11:32 UTC (permalink / raw)
  To: David Sterba
  Cc: Johannes Thumshirn, Dan Carpenter, linux-btrfs, kernel test robot

Some error paths of  btrfs_get_dev_zone_info do not free zone_info,
so assign zone_info to device->zone_info as soon as we've successfully
allocated it, so it wiill get freed by the error handling.

a411e32badc4 ("btrfs: zoned: cache reported zone during mount")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
 fs/btrfs/zoned.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 5e5cb9aa0569..f559d517c7c4 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -375,6 +375,8 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
 	if (!zone_info)
 		return -ENOMEM;
 
+	device->zone_info = zone_info;
+
 	if (!bdev_is_zoned(bdev)) {
 		if (!fs_info->zone_size) {
 			ret = calculate_emulated_zone_size(fs_info);
@@ -460,8 +462,6 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
 		}
 	}
 
-	device->zone_info = zone_info;
-
 	/* Get zones type */
 	nactive = 0;
 	while (sector < nr_sectors) {
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-10 13:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-10 11:32 [PATCH] btrfs: zoned: fix leak of zone_info in btrfs_get_dev_zone_info Johannes Thumshirn
2021-12-10 11:44 ` David Sterba
2021-12-10 13:34   ` Johannes Thumshirn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.