VirtualBox

Changeset 79742 in vbox for trunk/src/VBox/Storage


Ignore:
Timestamp:
Jul 12, 2019 4:11:19 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
132104
Message:

Changes per #5899 / Comment #14

Location:
trunk/src/VBox/Storage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Storage/VDI.cpp

    r77622 r79742  
    4444static const VDCONFIGINFO vdiConfigInfo[] =
    4545{
    46     { "AllocationBlockSize",            vdiAllocationBlockSize,           VDCFGVALUETYPE_INTEGER,      0 },
     46    { "AllocationBlockSize",            vdiAllocationBlockSize,           VDCFGVALUETYPE_INTEGER,      VD_CFGKEY_CREATEONLY },
    4747    { NULL,                             NULL,                             VDCFGVALUETYPE_INTEGER,      0 }
    4848};
     
    541541    pImage->uShiftOffset2Index = getPowerOfTwo(getImageBlockSize(&pImage->Header));
    542542    pImage->offStartBlockData  = getImageExtraBlockSize(&pImage->Header);
    543     pImage->cbTotalBlockData   =   pImage->offStartBlockData
     543    pImage->cbAllocationBlock  = getImageBlockSize(&pImage->Header);
     544    pImage->cbTotalBlockData   = pImage->offStartBlockData
    544545                                 + getImageBlockSize(&pImage->Header);
    545546}
     
    706707    int rc = VINF_SUCCESS;
    707708    uint32_t cbDataAlign = VDI_DATA_ALIGN;
    708     uint32_t cbAllocationBlock = VDI_IMAGE_DEFAULT_BLOCK_SIZE;
    709709    AssertPtr(pPCHSGeometry);
    710710    AssertPtr(pLCHSGeometry);
     
    723723    if (pImgCfg)
    724724    {
    725         rc = VDCFGQueryU32Def(pImgCfg, "AllocationBlockSize", &cbAllocationBlock, VDI_IMAGE_DEFAULT_BLOCK_SIZE);
     725        rc = VDCFGQueryU32Def(pImgCfg, "AllocationBlockSize",
     726                &pImage->cbAllocationBlock, VDI_IMAGE_DEFAULT_BLOCK_SIZE);
    726727        if (RT_FAILURE(rc))
    727728            rc = vdIfError(pImage->pIfError, rc, RT_SRC_POS,
     
    741742
    742743        rc = vdiSetupImageState(pImage, uImageFlags, pszComment, cbSize,
    743                 cbAllocationBlock, cbDataAlign, pPCHSGeometry, pLCHSGeometry);
     744                pImage->cbAllocationBlock, cbDataAlign, pPCHSGeometry, pLCHSGeometry);
     745
    744746        if (RT_SUCCESS(rc))
    745747        {
     
    10131015        pRegion->cbMetadata           = 0;
    10141016        pRegion->cRegionBlocksOrBytes = getImageDiskSize(&pImage->Header);
     1017        if (uOpenFlags & VD_OPEN_FLAGS_INFO)
     1018        {
     1019            PVDINTERFACECONFIG pImgCfg = VDIfConfigGet(pImage->pVDIfsImage);
     1020            if (pImgCfg)
     1021            {
     1022                rc = VDCFGUpdateU64(pImgCfg, true, "AllocationBlockSize", pImage->cbAllocationBlock);
     1023                if (RT_FAILURE(rc))
     1024                    return rc;
     1025            }
     1026        }
    10151027    }
    10161028    else
  • trunk/src/VBox/Storage/VDICore.h

    r76578 r79742  
    554554    /** Total size of image block (including the extra data). */
    555555    unsigned                cbTotalBlockData;
     556    /** Allocation Block Size */
     557    unsigned                cbAllocationBlock;
    556558    /** Container filename. (UTF-8) */
    557559    const char             *pszFilename;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette