summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extras/volume_id/lib/Makefile2
-rw-r--r--extras/volume_id/lib/netware.c42
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));