ipl: Close file handles after usage

Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/ipl/ipl.c b/ipl/ipl.c
index ef422d3..b69cfb6 100644
--- a/ipl/ipl.c
+++ b/ipl/ipl.c
@@ -333,11 +333,13 @@
 			      512ULL * partition[part - 1].length);
     if(ext2_mount(part_fd, 0, 0) == -1) {
 	printf("Failed to mount partition %d\n", part);
+	fileio_close(part_fd);
 	return;
     }
 
     if((fd = ext2_open(kern_dir)) == -1) {
 	printf("Failed to open directory %s\n", kern_dir);
+	fileio_close(part_fd);
 	return;
     }
 
@@ -349,6 +351,7 @@
     
     printf("\n");
     ext2_close(fd);
+    fileio_close(part_fd);
     /* There's no umount ... since the next mount reuses
      * the current one's data structures ... */
 }
@@ -780,6 +783,7 @@
 
 	if (!load_kernel(kernfd, &entry, &wide))
 	{
+	    fileio_close(kernfd);
 	    die("ERROR: failed to load kernel\n");
 	    goto restart;
 	}
@@ -791,6 +795,7 @@
 	    {
 		printf("ERROR: failed to load ramdisk - proceeding anyway\n");
 	    }
+	    fileio_close(rdfd);
 	}
     }
     else /* kern_part > 0 && we're partitioned */
@@ -825,12 +830,17 @@
 	{
 	    printf("ERROR: open %s from partition %d failed\n",
 		kern_name, kern_part);
+	    fileio_close(mount_fd);
+	    fileio_close(part_fd);
 	    goto restart;
 	}
 
 	bkern_fd = byteio_open(kern_fd);
 	if (!load_kernel(bkern_fd, &entry, &wide))
 	{
+	    fileio_close(bkern_fd);
+	    fileio_close(mount_fd);
+	    fileio_close(part_fd);
 	    die("ERROR: failed to load kernel\n");
 	    goto restart;
 	}