diff options
Diffstat (limited to 'extras/volume_id')
-rw-r--r-- | extras/volume_id/lib/Makefile | 2 | ||||
-rw-r--r-- | extras/volume_id/lib/netware.c | 42 |
2 files changed, 42 insertions, 2 deletions
diff --git a/extras/volume_id/lib/Makefile b/extras/volume_id/lib/Makefile index e3c3f5dab5..4ead34a20a 100644 --- a/extras/volume_id/lib/Makefile +++ b/extras/volume_id/lib/Makefile @@ -13,7 +13,7 @@ INSTALL_DATA = ${INSTALL} -m 644 INSTALL_LIB = ${INSTALL} -m 755 SHLIB_CUR = 0 -SHLIB_REV = 62 +SHLIB_REV = 63 SHLIB_AGE = 0 SHLIB = libvolume_id.so.$(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE) diff --git a/extras/volume_id/lib/netware.c b/extras/volume_id/lib/netware.c index 49afe21fc4..6e1e95f86c 100644 --- a/extras/volume_id/lib/netware.c +++ b/extras/volume_id/lib/netware.c @@ -36,6 +36,46 @@ struct netware_super_block { uint16_t SBH_VersionMediaMinor; uint32_t SBH_ItemsMoved; uint8_t SBH_InternalID[16]; + uint32_t SBH_PackedSize; + uint32_t SBH_Checksum; + uint32_t supersyncid; + int64_t superlocation[4]; + uint32_t physSizeUsed; + uint32_t sizeUsed; + uint32_t superTimeStamp; + uint32_t reserved0[1]; + int64_t SBH_LoggedPoolDataBlk; + int64_t SBH_PoolDataBlk; + uint8_t SBH_OldInternalID[16]; + uint32_t SBH_PoolToLVStartUTC; + uint32_t SBH_PoolToLVEndUTC; + uint16_t SBH_VersionMediaMajorCreate; + uint16_t SBH_VersionMediaMinorCreate; + uint32_t SBH_BlocksMoved; + uint32_t SBH_TempBTSpBlk; + uint32_t SBH_TempFTSpBlk; + uint32_t SBH_TempFTSpBlk1; + uint32_t SBH_TempFTSpBlk2; + uint32_t nssMagicNumber; + uint32_t poolClassID; + uint32_t poolID; + uint32_t createTime; + int64_t SBH_LoggedVolumeDataBlk; + int64_t SBH_VolumeDataBlk; + int64_t SBH_SystemBeastBlkNum; + uint64_t totalblocks; + uint16_t SBH_Name[64]; + uint8_t SBH_VolumeID[16]; + uint8_t SBH_PoolID[16]; + uint8_t SBH_PoolInternalID[16]; + uint64_t SBH_Lsn; + uint32_t SBH_SS_Enabled; + uint32_t SBH_SS_CreateTime; + uint8_t SBH_SS_OriginalPoolID[16]; + uint8_t SBH_SS_OriginalVolumeID[16]; + uint8_t SBH_SS_Guid[16]; + uint16_t SBH_SS_OriginalName[64]; + uint32_t reserved2[64-(2+46)]; } PACKED; int volume_id_probe_netware(struct volume_id *id, uint64_t off) @@ -51,7 +91,7 @@ int volume_id_probe_netware(struct volume_id *id, uint64_t off) if (memcmp(nw->SBH_Signature, "SPB5", 4) != 0) return -1; - volume_id_set_uuid(id, nw->SBH_InternalID, UUID_DCE); + volume_id_set_uuid(id, nw->SBH_PoolID, UUID_DCE); snprintf(id->type_version, sizeof(id->type_version)-1, "%u.%02u", le16_to_cpu(nw->SBH_VersionMediaMajor), le16_to_cpu(nw->SBH_VersionMediaMinor)); |