diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c | |
index e2c4139..296fe64 100644 | |
--- a/libparted/arch/linux.c | |
+++ b/libparted/arch/linux.c | |
@@ -1604,6 +1604,9 @@ retry: | |
dev->path, strerror (errno)) | |
== PED_EXCEPTION_RETRY) | |
goto retry; | |
+ else | |
+ /* Try hard to make sure the file descriptor never leaks */ | |
+ close (arch_specific->fd); | |
return 1; | |
} | |