summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrzemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>2010-07-06 16:47:02 +1000
committerNeilBrown <neilb@suse.de>2010-07-06 16:47:02 +1000
commitaae3cdc35afd38b8e67fa4a8b4384c9c9d345c60 (patch)
tree5f8828843bcc9c9ef5e6bc6996eaa2c7dd5ac63b
parent1538aca5cbbd99be47657e0ca0b7e2186426a1b1 (diff)
downloadmdadm-aae3cdc35afd38b8e67fa4a8b4384c9c9d345c60.tar.gz
mdadm-aae3cdc35afd38b8e67fa4a8b4384c9c9d345c60.tar.xz
mdadm-aae3cdc35afd38b8e67fa4a8b4384c9c9d345c60.zip
fix: IncrementalRemove leaves open handle
Signed-off-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com<mailto:przemyslaw.hawrylewicz.czarnowski@intel.com>>
-rw-r--r--Incremental.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Incremental.c b/Incremental.c
index 96bfcec..eb27784 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -883,6 +883,7 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
int IncrementalRemove(char *devname, int verbose)
{
int mdfd;
+ int rv;
struct mdstat_ent *ent;
struct mddev_dev_s devlist;
@@ -907,5 +908,7 @@ int IncrementalRemove(char *devname, int verbose)
devlist.disposition = 'f';
Manage_subdevs(ent->dev, mdfd, &devlist, verbose, 0);
devlist.disposition = 'r';
- return Manage_subdevs(ent->dev, mdfd, &devlist, verbose, 0);
+ rv = Manage_subdevs(ent->dev, mdfd, &devlist, verbose, 0);
+ close(mdfd);
+ return rv;
}