]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mdadm/sysfs: close fd before return
authorXiao Ni <xni@redhat.com>
Fri, 17 Oct 2025 09:06:13 +0000 (17:06 +0800)
committerNigel Croxon <109605997+ncroxon@users.noreply.github.com>
Tue, 21 Oct 2025 12:06:49 +0000 (08:06 -0400)
It needs to close fd before returning the function.

Signed-off-by: Xiao Ni <xni@redhat.com>
sysfs.c

diff --git a/sysfs.c b/sysfs.c
index c030d634b1554a4395766e0e2e1ce739009f9700..e60adc9f549fe4125685e7ab7ad192de00965fb2 100644 (file)
--- a/sysfs.c
+++ b/sysfs.c
@@ -160,6 +160,7 @@ mdadm_status_t sysfs_set_memb_state_fd(int fd, memb_state_t state, int *err)
 mdadm_status_t sysfs_set_memb_state(char *array_devnm, char *memb_devnm, memb_state_t state)
 {
        int state_fd = sysfs_open_memb_attr(array_devnm, memb_devnm, "state", O_RDWR);
+       mdadm_status_t status;
 
        if (!is_fd_valid(state_fd)) {
                pr_err("Cannot open file descriptor to %s in array %s, aborting.\n",
@@ -167,9 +168,9 @@ mdadm_status_t sysfs_set_memb_state(char *array_devnm, char *memb_devnm, memb_st
                        return MDADM_STATUS_ERROR;
        }
 
-       return sysfs_set_memb_state_fd(state_fd, state, NULL);
-
+       status = sysfs_set_memb_state_fd(state_fd, state, NULL);
        close_fd(&state_fd);
+       return status;
 }
 
 /**