Systems where the rootfs is ZFS currently rely on their initramfs software to to scan the block devices, identify those belonging to a pool and import the pool. The root dataset name (which includes the pool name) is passed to the initramfs via the kernel commandline. This a headache for users whose distributions' sanctioned initramfs software lacks ZFS support. This is also a maintenance headache for the maintainers of initramfs software that has ZFS support because the scan can race with the kernel's block device initialization routines. I want to change things so that arbitrary initramfs software can mount a ZFS root filesystem provided that it includes the appropriate kernel modules, passes module parameters to kernel modules and includes mount.zfs. This would be accomplished by having the ZFS kernel module receive the root dataset name through a kernel module parameter, and then do the required pool import and rootfs mount when asked to mount /dev/root. This requires that the ZFS kernel module do a scan of all devices as part of the rootfs mount, for which iterate_bdevs() is perfect. Unfortunately, iterate_bdevs() is not exported, which prevents its use by kernel modules. iterate_bdevs() was recently introduced. It is in the company of several other bdev/device functions that are already exported, so I believe that there should be no problem exporting it as well. Richard Yao (1): fs: Export iterate_bdevs fs/block_dev.c | 1 + 1 file changed, 1 insertion(+) -- 1.8.1.5 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html