VirtualBox

vbox的更動 44233 路徑 trunk/src/VBox/Storage/QCOW.cpp


忽略:
時間撮記:
2013-1-4 下午08:39:56 (12 年 以前)
作者:
vboxsync
訊息:

Storage: Preparations for the sync/async I/O unification

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Storage/QCOW.cpp

    r44232 r44233  
    705705            pL2Entry->offL2Tbl = offL2Tbl;
    706706            rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage, offL2Tbl,
    707                                        pL2Entry->paL2Tbl, pImage->cbL2Table, NULL);
     707                                       pL2Entry->paL2Tbl, pImage->cbL2Table);
    708708            if (RT_SUCCESS(rc))
    709709            {
     
    757757
    758758            pL2Entry->offL2Tbl = offL2Tbl;
    759             rc = vdIfIoIntFileReadMetaAsync(pImage->pIfIo, pImage->pStorage,
    760                                             offL2Tbl, pL2Entry->paL2Tbl,
    761                                             pImage->cbL2Table, pIoCtx,
    762                                             &pMetaXfer, NULL, NULL);
     759            rc = vdIfIoIntFileReadMeta(pImage->pIfIo, pImage->pStorage,
     760                                       offL2Tbl, pL2Entry->paL2Tbl,
     761                                       pImage->cbL2Table, pIoCtx,
     762                                       &pMetaXfer, NULL, NULL);
    763763            if (RT_SUCCESS(rc))
    764764            {
     
    10181018            rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage,
    10191019                                        pImage->offL1Table, paL1TblImg,
    1020                                         pImage->cbL1Table, NULL);
     1020                                        pImage->cbL1Table);
    10211021            RTMemFree(paL1TblImg);
    10221022        }
     
    10261026        /* Write L1 table directly. */
    10271027        rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage, pImage->offL1Table,
    1028                                     pImage->paL1Table, pImage->cbL1Table, NULL);
     1028                                    pImage->paL1Table, pImage->cbL1Table);
    10291029#endif
    10301030        if (RT_SUCCESS(rc))
     
    10341034            qcowHdrConvertFromHostEndianess(pImage, &Header, &cbHeader);
    10351035            rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage, 0, &Header,
    1036                                         cbHeader, NULL);
     1036                                        cbHeader);
    10371037            if (RT_SUCCESS(rc))
    10381038                rc = vdIfIoIntFileFlushSync(pImage->pIfIo, pImage->pStorage);
     
    10651065            qcowTableConvertFromHostEndianess(paL1TblImg, pImage->paL1Table,
    10661066                                             pImage->cL1TableEntries);
    1067             rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    1068                                              pImage->offL1Table, paL1TblImg,
    1069                                              pImage->cbL1Table, pIoCtx, NULL, NULL);
     1067            rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     1068                                        pImage->offL1Table, paL1TblImg,
     1069                                        pImage->cbL1Table, pIoCtx, NULL, NULL);
    10701070            RTMemFree(paL1TblImg);
    10711071        }
     
    10741074#else
    10751075        /* Write L1 table directly. */
    1076         rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    1077                                          pImage->offL1Table, pImage->paL1Table,
    1078                                          pImage->cbL1Table, pIoCtx, NULL, NULL);
     1076        rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     1077                                    pImage->offL1Table, pImage->paL1Table,
     1078                                    pImage->cbL1Table, pIoCtx, NULL, NULL);
    10791079#endif
    10801080        if (RT_SUCCESS(rc) || rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
     
    10831083            size_t cbHeader = 0;
    10841084            qcowHdrConvertFromHostEndianess(pImage, &Header, &cbHeader);
    1085             rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    1086                                              0, &Header, cbHeader,
    1087                                              pIoCtx, NULL, NULL);
     1085            rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     1086                                        0, &Header, cbHeader,
     1087                                        pIoCtx, NULL, NULL);
    10881088            if (RT_SUCCESS(rc) || rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    1089                 rc = vdIfIoIntFileFlushAsync(pImage->pIfIo, pImage->pStorage,
    1090                                              pIoCtx, NULL, NULL);
     1089                rc = vdIfIoIntFileFlush(pImage->pIfIo, pImage->pStorage,
     1090                                        pIoCtx, NULL, NULL);
    10911091        }
    10921092    }
     
    11671167    if (cbFile > sizeof(Header))
    11681168    {
    1169         rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage, 0, &Header, sizeof(Header), NULL);
     1169        rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage, 0, &Header, sizeof(Header));
    11701170        if (   RT_SUCCESS(rc)
    11711171            && qcowHdrConvertToHostEndianess(&Header))
     
    12471247                    rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage,
    12481248                                               pImage->offBackingFilename, pImage->pszBackingFilename,
    1249                                                pImage->cbBackingFilename, NULL);
     1249                                               pImage->cbBackingFilename);
    12501250                }
    12511251                else
     
    12641264                    rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage,
    12651265                                               pImage->offRefcountTable, pImage->paRefcountTable,
    1266                                                pImage->cbRefcountTable, NULL);
     1266                                               pImage->cbRefcountTable);
    12671267                    if (RT_SUCCESS(rc))
    12681268                        qcowTableConvertToHostEndianess(pImage->paRefcountTable,
     
    12901290                    rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage,
    12911291                                               pImage->offL1Table, pImage->paL1Table,
    1292                                                pImage->cbL1Table, NULL);
     1292                                               pImage->cbL1Table);
    12931293                    if (RT_SUCCESS(rc))
    12941294                        qcowTableConvertToHostEndianess(pImage->paL1Table, pImage->cL1TableEntries);
     
    14691469            /* Update the link in the on disk L1 table now. */
    14701470            pClusterAlloc->enmAllocState = QCOWCLUSTERASYNCALLOCSTATE_L2_LINK;
    1471             rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    1472                                              pImage->offL1Table + pClusterAlloc->idxL1*sizeof(uint64_t),
    1473                                              &offUpdateLe, sizeof(uint64_t), pIoCtx,
    1474                                              qcowAsyncClusterAllocUpdate, pClusterAlloc);
     1471            rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     1472                                        pImage->offL1Table + pClusterAlloc->idxL1*sizeof(uint64_t),
     1473                                        &offUpdateLe, sizeof(uint64_t), pIoCtx,
     1474                                        qcowAsyncClusterAllocUpdate, pClusterAlloc);
    14751475            if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    14761476                break;
     
    14971497
    14981498            /* Write data. */
    1499             rc = vdIfIoIntFileWriteUserAsync(pImage->pIfIo, pImage->pStorage,
    1500                                              offData, pIoCtx, pClusterAlloc->cbToWrite,
    1501                                              qcowAsyncClusterAllocUpdate, pClusterAlloc);
     1499            rc = vdIfIoIntFileWriteUser(pImage->pIfIo, pImage->pStorage,
     1500                                        offData, pIoCtx, pClusterAlloc->cbToWrite,
     1501                                        qcowAsyncClusterAllocUpdate, pClusterAlloc);
    15021502            if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    15031503                break;
     
    15161516
    15171517            /* Link L2 table and update it. */
    1518             rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    1519                                              pImage->paL1Table[pClusterAlloc->idxL1] + pClusterAlloc->idxL2*sizeof(uint64_t),
    1520                                              &offUpdateLe, sizeof(uint64_t), pIoCtx,
    1521                                              qcowAsyncClusterAllocUpdate, pClusterAlloc);
     1518            rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     1519                                        pImage->paL1Table[pClusterAlloc->idxL1] + pClusterAlloc->idxL2*sizeof(uint64_t),
     1520                                        &offUpdateLe, sizeof(uint64_t), pIoCtx,
     1521                                        qcowAsyncClusterAllocUpdate, pClusterAlloc);
    15221522            if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    15231523                break;
     
    15811581        QCowHeader Header;
    15821582
    1583         rc = vdIfIoIntFileReadSync(pIfIo, pStorage, 0, &Header, sizeof(Header), NULL);
     1583        rc = vdIfIoIntFileReadSync(pIfIo, pStorage, 0, &Header, sizeof(Header));
    15841584        if (   RT_SUCCESS(rc)
    15851585            && qcowHdrConvertToHostEndianess(&Header))
     
    18231823        LogFlowFunc(("offFile=%llu\n", offFile));
    18241824        rc = vdIfIoIntFileReadSync(pImage->pIfIo, pImage->pStorage, offFile,
    1825                                    pvBuf, cbToRead, NULL);
     1825                                   pvBuf, cbToRead);
    18261826    }
    18271827
     
    18771877    if (RT_SUCCESS(rc))
    18781878        rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage, offImage,
    1879                                     pvBuf, cbToWrite, NULL);
     1879                                    pvBuf, cbToWrite);
    18801880    else if (rc == VERR_VD_BLOCK_FREE)
    18811881    {
     
    19151915                     */
    19161916                    rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage, offL2Tbl,
    1917                                                 pL2Entry->paL2Tbl, pImage->cbL2Table, NULL);
     1917                                                pL2Entry->paL2Tbl, pImage->cbL2Table);
    19181918                    if (RT_FAILURE(rc))
    19191919                        break;
     
    19241924                    rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage,
    19251925                                                pImage->offL1Table + idxL1*sizeof(uint64_t),
    1926                                                 &idxUpdateLe, sizeof(uint64_t), NULL);
     1926                                                &idxUpdateLe, sizeof(uint64_t));
    19271927                    if (RT_FAILURE(rc))
    19281928                        break;
     
    19381938                    /* Write data. */
    19391939                    rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage,
    1940                                                 offData, pvBuf, cbToWrite, NULL);
     1940                                                offData, pvBuf, cbToWrite);
    19411941                    if (RT_FAILURE(rc))
    19421942                        break;
     
    19471947                    rc = vdIfIoIntFileWriteSync(pImage->pIfIo, pImage->pStorage,
    19481948                                                pImage->paL1Table[idxL1] + idxL2*sizeof(uint64_t),
    1949                                                 &idxUpdateLe, sizeof(uint64_t), NULL);
     1949                                                &idxUpdateLe, sizeof(uint64_t));
    19501950                    qcowL2TblCacheEntryRelease(pL2Entry);
    19511951                }
     
    24932493                                                pImage->offBackingFilename,
    24942494                                                pImage->pszBackingFilename,
    2495                                                 strlen(pImage->pszBackingFilename),
    2496                                                 NULL);
     2495                                                strlen(pImage->pszBackingFilename));
    24972496            }
    24982497        }
     
    25432542                                       &offFile);
    25442543    if (RT_SUCCESS(rc))
    2545         rc = vdIfIoIntFileReadUserAsync(pImage->pIfIo, pImage->pStorage, offFile,
    2546                                         pIoCtx, cbToRead);
     2544        rc = vdIfIoIntFileReadUser(pImage->pIfIo, pImage->pStorage, offFile,
     2545                                   pIoCtx, cbToRead);
    25472546
    25482547    if (   (   RT_SUCCESS(rc)
     
    26052604                                      &offImage);
    26062605    if (RT_SUCCESS(rc))
    2607         rc = vdIfIoIntFileWriteUserAsync(pImage->pIfIo, pImage->pStorage,
    2608                                          offImage, pIoCtx, cbToWrite, NULL, NULL);
     2606        rc = vdIfIoIntFileWriteUser(pImage->pIfIo, pImage->pStorage,
     2607                                    offImage, pIoCtx, cbToWrite, NULL, NULL);
    26092608    else if (rc == VERR_VD_BLOCK_FREE)
    26102609    {
     
    26612660                     * is a leak of some clusters.
    26622661                     */
    2663                     rc = vdIfIoIntFileWriteMetaAsync(pImage->pIfIo, pImage->pStorage,
    2664                                                      offL2Tbl, pL2Entry->paL2Tbl, pImage->cbL2Table, pIoCtx,
    2665                                                      qcowAsyncClusterAllocUpdate, pL2ClusterAlloc);
     2662                    rc = vdIfIoIntFileWriteMeta(pImage->pIfIo, pImage->pStorage,
     2663                                                offL2Tbl, pL2Entry->paL2Tbl, pImage->cbL2Table, pIoCtx,
     2664                                                qcowAsyncClusterAllocUpdate, pL2ClusterAlloc);
    26662665                    if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    26672666                        break;
     
    27042703
    27052704                        /* Write data. */
    2706                         rc = vdIfIoIntFileWriteUserAsync(pImage->pIfIo, pImage->pStorage,
    2707                                                          offData, pIoCtx, cbToWrite,
    2708                                                          qcowAsyncClusterAllocUpdate, pDataClusterAlloc);
     2705                        rc = vdIfIoIntFileWriteUser(pImage->pIfIo, pImage->pStorage,
     2706                                                    offData, pIoCtx, cbToWrite,
     2707                                                    qcowAsyncClusterAllocUpdate, pDataClusterAlloc);
    27092708                        if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS)
    27102709                            break;
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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