[DragonFlyBSD - Submit #3099] disklabel64: Fix partition 1MiB phsycial alignment; with other minor updates and cleanups

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Fri Dec 29 20:22:56 PST 2017


Issue #3099 has been updated by liweitianux.


Hi Matt Dillon,

I've added 2 more commits to my branch:

1. Replace "strncpy()" with "strlcpy()", and update the packname print;
2. Improve the error message to say that disktab(5) is not yet supported, and only "auto" allowed.

Here is my GitHub branch:
https://github.com/liweitianux/dragonflybsd/tree/disklabel

It's ready to be reviewed and merged by you, thanks.

Happy New Year!

Aly


----------------------------------------
Submit #3099: disklabel64: Fix partition 1MiB phsycial alignment; with other minor updates and cleanups
http://bugs.dragonflybsd.org/issues/3099#change-13364

* Author: liweitianux
* Status: In Progress
* Priority: Normal
* Assignee: dillon
* Category: Kernel
* Target version: 
----------------------------------------
Hello,

According to disklabel64(8), the partitions within a slice are physically aligned to 1MiB (PALIGN_SIZE).  However, there is a mistake in l64_makevirginlabel() in kern/subr_disklabel64.c, which causes the partitions are actually only 32KiB aligned.  The proposed patches here fix this issue, and introduce some more updates and cleanups:

* Calculate d_pbase and d_pstop to make them both physically aligned to 1MiB;
* Defined BOOT2SIZE64 in sys/disklabel64.h to replace the use of 32768;
* Reserve space for the backup label at the slice end (after d_pstop), though the backup functionality not implemented;
* Make the "auto" disk type optional, since the disk type support is not implement;
* Update several comments, displayed disklabel descriptions;
* Fix two compilation warnings due to the mismatched type in strncpy();
* Add "static" keyword; cleanup unused variables and definitions.

I also pushed these patches to my GitHub at:
https://github.com/liweitianux/dragonflybsd/tree/disklabel

Here is a comparison of the virgin labels generated:

diskinfo:
/dev/ad4s1       blksize=512  offset=0x000000007e00 size=0x002543158200  149.05 GB

Before:
------------------------------------------------------------------------------
# boot space:    1044992 bytes
# data space:  156287323 blocks # 152624.34 MB (160038219264 bytes)

boot2 data base:      0x000000001000
partitions data base: 0x000000100200
partitions data stop: 0x002543157000
backup label:         0x002543157000
total size:           0x002543158200    # 152625.34 MB
------------------------------------------------------------------------------

After:
------------------------------------------------------------------------------
# boot space:    1012224 bytes
# data space:  156286976 blocks # 152624.00 MB (160037863424 bytes)

boot2 data base:      0x000000001000
partitions data base: 0x0000000f8200
partitions data stop: 0x0025430f8200
backup label:         0x0025430f8200
total size:           0x002543158200    # 152625.34 MB
------------------------------------------------------------------------------

Thanks for reviewing these patches.

Aly



-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



More information about the Submit mailing list