diff options
Diffstat (limited to 'libfdisk/src/sun.c')
-rw-r--r-- | libfdisk/src/sun.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libfdisk/src/sun.c b/libfdisk/src/sun.c index babff6263..d99c39f6f 100644 --- a/libfdisk/src/sun.c +++ b/libfdisk/src/sun.c @@ -957,9 +957,11 @@ static int sun_write_disklabel(struct fdisk_context *cxt) sunlabel->nhead = cpu_to_be16(cxt->geom.heads); sunlabel->nsect = cpu_to_be16(cxt->geom.sectors); - if (cxt->geom.cylinders != be16_to_cpu(sunlabel->ncyl)) - sunlabel->ncyl = cpu_to_be16( cxt->geom.cylinders - - be16_to_cpu(sunlabel->acyl) ); + if (cxt->geom.cylinders != be16_to_cpu(sunlabel->ncyl)) { + int a = cpu_to_be16(cxt->geom.cylinders); + int b = be16_to_cpu(sunlabel->acyl); + sunlabel->ncyl = a - b; + } ush = (unsigned short *) sunlabel; |