git: installer: Use ioctl(DIOCGPART) for getting a disk's size.

Sascha Wildner swildner at crater.dragonflybsd.org
Tue May 31 14:28:53 PDT 2016


commit 795e32157bb0bc3e1efe5a4a0fce70a9f39b74be
Author: Sascha Wildner <saw at online.de>
Date:   Tue May 31 23:27:35 2016 +0200

    installer: Use ioctl(DIOCGPART) for getting a disk's size.
    
    Before this commit, the installer was grepping in /var/run/dmesg.boot.
    This approach has one problem in particular, which is that it was
    used with CAM attached disks in mind, which will always print their
    size in MiBs. However, some drivers, such as mmcsd(4), roll their own
    disk, so they are free to choose what they print in their *_attach()
    function. Yet we still want to offer these disks from the installer.
    For example, mmcsd(4) starts printing the size in gigabytes if the
    disk is >= 10GiB.
    
    This commit changes the installer's survey function to read the
    disk's size using ioctl(DIOCGPART) to have consistent results.
    
    Reported-by:   Dmitry Postolov <dpostolov at yandex.ru>
    Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2899>

Summary of changes:
 usr.sbin/installer/libinstaller/survey.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/795e32157bb0bc3e1efe5a4a0fce70a9f39b74be


-- 
DragonFly BSD source repository


More information about the Commits mailing list