[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] [[!meta title="BLKRRPART IOCTL"]] [[!tag open_issue_glibc open_issue_hurd open_issue_gnumach]] Just like in other Unix systems one can, for example, use `fdisk` or `parted` to manage hard disks' partition tables. After doing changes to a disk's partition table, the kernel has to be instructed to reinitialize its internal data structures: where does a partition begin, where does it end, etc. With `fdisk` and friends this is done on Linux with the `BLKRRPART` IOCTL, which is used to tell the kernel to reread the disk's partition table. `parted` also uses this interface on Linux, but for GNU Hurd, the corresponding function, `libparted/arch/gnu.c (gnu_disk_commit)`, doesn't do anything at all. The infrastructure in [[GNU_Mach|microkernel/mach/gnumach]] is already there, `linux/src/drivers/block/ide.c (ide_ioctl) ` and `linux/src/drivers/scsi/sd_ioctl.c (sd_ioctl) `, but the IOCTL needs to be routed from `libparted` through [[glibc]]'s Hurd IOCTL interface, through Hurd's [[hurd/libstore]], to [[GNU_Mach|microkernel/mach/gnumach]]. This is not a huge project, and actually one that is suitable for someone who wants to start with hacking the system.