Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff3bcd03 authored by San Mehat's avatar San Mehat
Browse files

toolbox: newfs_msdos: If geometry is not available, use some sane-ish defaults



Signed-off-by: default avatarSan Mehat <san@google.com>
parent 37c71dd9
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -811,20 +811,21 @@ getdiskinfo(int fd, const char *fname, const char *dtype, __unused int oflag,
    struct hd_geometry geom;

    if (ioctl(fd, BLKSSZGET, &bpb->bps)) {
        fprintf(stderr, "Error getting bytes / sector (%s)", strerror(errno));
        fprintf(stderr, "Error getting bytes / sector (%s)\n", strerror(errno));
        exit(1);
    }

    ckgeom(fname, bpb->bps, "bytes/sector");

    if (ioctl(fd, BLKGETSIZE, &bpb->bsec)) {
        fprintf(stderr, "Error getting blocksize (%s)", strerror(errno));
        fprintf(stderr, "Error getting blocksize (%s)\n", strerror(errno));
        exit(1);
    }

    if (ioctl(fd, HDIO_GETGEO, &geom)) {
        fprintf(stderr, "Error getting gemoetry (%s)", strerror(errno));
        exit(1);
        fprintf(stderr, "Error getting gemoetry (%s) - trying sane values\n", strerror(errno));
        geom.heads = 64;
        geom.sectors = 63;
    }

    bpb->spt = geom.sectors;