[PATCH] Incremental: Close unclosed mdfd in IncrementalScan()

Subsystems: the rest

STALE1716d

2 messages, 2 authors, 2021-11-24 · open the first message on its own page

[PATCH] Incremental: Close unclosed mdfd in IncrementalScan()

From: Mateusz Grzonka <hidden>
Date: 2021-11-24 10:57:10

In addition to closing mdfd, propagate helpers to manage file
descriptors across IncrementalScan().

Signed-off-by: Mateusz Grzonka <redacted>
---
 Incremental.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/Incremental.c b/Incremental.c
index cd9cc0fc..9cdd31f0 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -1346,7 +1346,7 @@ restart:
 		}
 		mdfd = open_dev(me->devnm);
 
-		if (mdfd < 0)
+		if (!is_fd_valid(mdfd))
 			continue;
 		if (!isdigit(me->metadata[0])) {
 			/* must be a container */
@@ -1356,7 +1356,7 @@ restart:
 
 			if (st && st->ss->load_container)
 				ret = st->ss->load_container(st, mdfd, NULL);
-			close(mdfd);
+			close_fd(&mdfd);
 			if (!ret && st && st->ss->container_content) {
 				if (map_lock(&map))
 					pr_err("failed to get exclusive lock on mapfile\n");
@@ -1368,7 +1368,7 @@ restart:
 			continue;
 		}
 		if (md_array_active(mdfd)) {
-			close(mdfd);
+			close_fd(&mdfd);
 			continue;
 		}
 		/* Ok, we can try this one.   Maybe it needs a bitmap */
@@ -1385,9 +1385,9 @@ restart:
 			int bmfd;
 
 			bmfd = open(mddev->bitmap_file, O_RDWR);
-			if (bmfd >= 0) {
+			if (is_fd_valid(bmfd)) {
 				added = ioctl(mdfd, SET_BITMAP_FILE, bmfd);
-				close(bmfd);
+				close_fd(&bmfd);
 			}
 			if (c->verbose >= 0) {
 				if (added == 0)
@@ -1416,6 +1416,7 @@ restart:
 			}
 			sysfs_free(sra);
 		}
+		close_fd(&mdfd);
 	}
 	map_free(mapl);
 	return rv;
-- 
2.26.2

Re: [PATCH] Incremental: Close unclosed mdfd in IncrementalScan()

From: Jes Sorensen <hidden>
Date: 2021-11-24 12:09:27

On 11/24/21 5:45 AM, Mateusz Grzonka wrote:
In addition to closing mdfd, propagate helpers to manage file
descriptors across IncrementalScan().

Signed-off-by: Mateusz Grzonka <redacted>
---
 Incremental.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
Applied,

Thanks,
Jes

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help