I will be doing a major commit tonight as part of the continuing disklabel separation work. I'm about 90% done separating out the standard 32 bit disklabel. After I finish the separation, I will implement a 64 bit disklabel.
Anyone running HEAD will have to do a full buildworld/installworld after tonight's commit or your disklabel program will be out of sync with the kernel. The new disklabel program will detect old kernels, but the old disklabel program will not detect new kernels and the result will be corrupt labels on disk if disklabel -r is used. This work involves a great deal of messing around with the low level disklabeling code. The kernel will no longer snoop-adjust raw writes of the disklabel (aka disklabel -r -e/-w sequences), will no longer snoop-adjust raw reads of the disklabel (aka disklabel -r), and the kernel now manually adjusts the label when reading and writing it rather then depending on it being snoop-adjusted (which is all the DIOC* ioctls on disk labels). In addition, struct disklabel will be no more. The header file is being moved from sys/disklabel.h to sys/disklabel32.h and sys/disklabel.h will become a generic abstraction layer. The original struct disklabel will become struct disklabel32, etc. All of the disentangling of the disklabel is almost done! -Matt Matthew Dillon <[EMAIL PROTECTED]>