125ab0d1aSIngo Weinhold /* 225ab0d1aSIngo Weinhold * Copyright 2007, Ingo Weinhold, ingo_weinhold@gmx.de. 325ab0d1aSIngo Weinhold * Distributed under the terms of the MIT License. 425ab0d1aSIngo Weinhold */ 525ab0d1aSIngo Weinhold 625ab0d1aSIngo Weinhold #include "DeleteChildJob.h" 725ab0d1aSIngo Weinhold 8*300868ceSIngo Weinhold #include <syscalls.h> 9*300868ceSIngo Weinhold 1025ab0d1aSIngo Weinhold #include "DiskDeviceUtils.h" 1125ab0d1aSIngo Weinhold #include "PartitionReference.h" 1225ab0d1aSIngo Weinhold 1325ab0d1aSIngo Weinhold 1425ab0d1aSIngo Weinhold // constructor DeleteChildJob(PartitionReference * partition,PartitionReference * child)1525ab0d1aSIngo WeinholdDeleteChildJob::DeleteChildJob(PartitionReference* partition, 1625ab0d1aSIngo Weinhold PartitionReference* child) 1725ab0d1aSIngo Weinhold : DiskDeviceJob(partition, child) 1825ab0d1aSIngo Weinhold { 1925ab0d1aSIngo Weinhold } 2025ab0d1aSIngo Weinhold 2125ab0d1aSIngo Weinhold 2225ab0d1aSIngo Weinhold // destructor ~DeleteChildJob()2325ab0d1aSIngo WeinholdDeleteChildJob::~DeleteChildJob() 2425ab0d1aSIngo Weinhold { 2525ab0d1aSIngo Weinhold } 2625ab0d1aSIngo Weinhold 2725ab0d1aSIngo Weinhold 2825ab0d1aSIngo Weinhold // Do 2925ab0d1aSIngo Weinhold status_t Do()3025ab0d1aSIngo WeinholdDeleteChildJob::Do() 3125ab0d1aSIngo Weinhold { 32*300868ceSIngo Weinhold int32 changeCounter = fPartition->ChangeCounter(); 33*300868ceSIngo Weinhold status_t error = _kern_delete_child_partition(fPartition->PartitionID(), 34*300868ceSIngo Weinhold &changeCounter, fChild->PartitionID(), fChild->ChangeCounter()); 35*300868ceSIngo Weinhold if (error != B_OK) 36*300868ceSIngo Weinhold return error; 37*300868ceSIngo Weinhold 38*300868ceSIngo Weinhold fPartition->SetChangeCounter(changeCounter); 39*300868ceSIngo Weinhold fChild->SetTo(-1, 0); 40*300868ceSIngo Weinhold 41*300868ceSIngo Weinhold return B_OK; 4225ab0d1aSIngo Weinhold } 4325ab0d1aSIngo Weinhold 44