Re: [PATCH] imsm: FIX: not all disks are released in free_imsm_disks()
flat view
From: NeilBrown <hidden>
Date: 2011-01-31 00:07:13
On Fri, 28 Jan 2011 14:37:51 +0100 Adam Kwolek [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Adding spare disks to imsm container fails due to problem with writing new_dev to sysfs. This problem was caused by not closed handle (opened exclusively) in Manage.c:803. Disk handle was not closed by free_imsm(). This is due to not released disk_mgmt_list in free_imsm_disks(). Proper release of imsm metadata allows for spare adding without problems. Memory leak was fixed also. Signed-off-by: Adam Kwolek <redacted> --- super-intel.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)diff --git a/super-intel.c b/super-intel.c index 958a02b..8bb21dd 100644 --- a/super-intel.c +++ b/super-intel.c@@ -2687,6 +2687,11 @@ static void free_imsm_disks(struct intel_super *super) super->disks = d->next; __free_imsm_disk(d); } + while (super->disk_mgmt_list) { + d = super->disk_mgmt_list; + super->disk_mgmt_list = d->next; + __free_imsm_disk(d); + } while (super->missing) { d = super->missing; super->missing = d->next;
Applied, thanks. NeilBrown