Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=fwsetup-ng.git;a=commitdiff;h=02023d806db0de4120b6ff8b9ecf4460c20d79f3
commit 02023d806db0de4120b6ff8b9ecf4460c20d79f3 Author: James Buren <[email protected]> Date: Tue Oct 9 03:15:51 2012 -0500 determine correct last sector diff --git a/src/block.c b/src/block.c index 3ce669e..273e3c0 100644 --- a/src/block.c +++ b/src/block.c @@ -153,18 +153,13 @@ static inline long long alignsector(const struct device *device,long long sector static inline void getsectors(struct disk *disk) { - long long size = 0; long long sectorsize = disk->device->sectorsize; - lldiv_t n = {0}; - - if(disk->type == DISKTYPE_DOS) - size = 512; - else if(disk->type == DISKTYPE_GPT) - size = 512 + 512 + (128 * 128); + long long sectors = disk->device->sectors - 1; - n = lldiv(size,sectorsize); + if(disk->type == DISKTYPE_GPT) + sectors -= 1 + ((128 * 128) / sectorsize); - disk->sectors = disk->device->sectors - n.quot - (n.rem == 0) ? 0 : 1; + disk->sectors = sectors; } extern struct device *device_open(const char *path) _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
