diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-11-01 04:09:40 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-11-01 04:09:40 +0000 |
commit | 256f011d2f256c8c2c05c37a518401199fa423bf (patch) | |
tree | 8dc9f04b281a2a8d080f0f327d11f33846be8e33 /Kill.c | |
parent | Releasing debian version 4.2+20230508-7. (diff) | |
download | mdadm-256f011d2f256c8c2c05c37a518401199fa423bf.tar.xz mdadm-256f011d2f256c8c2c05c37a518401199fa423bf.zip |
Merging upstream version 4.2+20231026.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'Kill.c')
-rw-r--r-- | Kill.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -41,6 +41,7 @@ int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl) * 4 - failed to find a superblock. */ + bool free_super = false; int fd, rv = 0; if (force) @@ -52,8 +53,10 @@ int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl) dev); return 2; } - if (st == NULL) + if (st == NULL) { st = guess_super(fd); + free_super = true; + } if (st == NULL || st->ss->init_super == NULL) { if (verbose >= 0) pr_err("Unrecognised md component device - %s\n", dev); @@ -77,6 +80,10 @@ int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl) rv = 0; } } + if (free_super && st) { + st->ss->free_super(st); + free(st); + } close(fd); return rv; } |