VirtualBox

Changeset 46285 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
May 27, 2013 11:56:50 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86029
Message:

Main/Machine: fix medium lock list handling when creating implicit diffs, the update should be done in commitMedia

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r46124 r46285  
    25142514            mHWData->mHWVirtExUXEnabled = !!aVal;
    25152515            break;
    2516    
     2516
    25172517        case HWVirtExPropertyType_LargePages:
    25182518            setModified(IsModified_MachineData);
     
    1072310723            if (FAILED(rc)) throw rc;
    1072410724
    10725             rc = lockedMediaMap->Unlock();
    10726             AssertComRCThrowRC(rc);
    10727             alock.release();
    10728             rc = pMediumLockList->Append(diff, true);
    10729             alock.acquire();
    10730             AssertComRCThrowRC(rc);
    10731             alock.release();
    10732             rc = lockedMediaMap->Lock();
    10733             alock.acquire();
    10734             AssertComRCThrowRC(rc);
     10725            /* actual lock list update is done in Medium::commitMedia */
    1073510726
    1073610727            rc = diff->addBackReference(mData->mUuid);
     
    1136711358                MediumLockList *pMediumLockList;
    1136811359                rc = mData->mSession.mLockedMedia.Get(pAttach, pMediumLockList);
    11369                 AssertComRC(rc);
    11370                 if (pMediumLockList)
     11360                if (RT_UNLIKELY(rc == VBOX_E_INVALID_OBJECT_STATE))
    1137111361                {
    11372                     rc = mData->mSession.mLockedMedia.Remove(pAttach);
     11362                    /* this happens for online snapshots, there the attachment
     11363                     * is changing, but only to a diff image created under
     11364                     * the old one, so there is no separate lock list */
     11365                    Assert(!pMediumLockList);
     11366                }
     11367                else
     11368                {
    1137311369                    AssertComRC(rc);
     11370                    if (pMediumLockList)
     11371                    {
     11372                        rc = mData->mSession.mLockedMedia.Remove(pAttach);
     11373                        AssertComRC(rc);
     11374                    }
    1137411375                }
    1137511376            }
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