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 "RepairJob.h" 725ab0d1aSIngo Weinhold 8300868ceSIngo Weinhold #include <syscalls.h> 9300868ceSIngo Weinhold 1025ab0d1aSIngo Weinhold #include "PartitionReference.h" 1125ab0d1aSIngo Weinhold 1225ab0d1aSIngo Weinhold 1325ab0d1aSIngo Weinhold // constructor RepairJob(PartitionReference * partition,bool checkOnly)1425ab0d1aSIngo WeinholdRepairJob::RepairJob(PartitionReference* partition, bool checkOnly) 15*e1b526b9SJonas Sundström : 16*e1b526b9SJonas Sundström DiskDeviceJob(partition), 1725ab0d1aSIngo Weinhold fCheckOnly(checkOnly) 1825ab0d1aSIngo Weinhold { 1925ab0d1aSIngo Weinhold } 2025ab0d1aSIngo Weinhold 2125ab0d1aSIngo Weinhold 2225ab0d1aSIngo Weinhold // destructor ~RepairJob()2325ab0d1aSIngo WeinholdRepairJob::~RepairJob() 2425ab0d1aSIngo Weinhold { 2525ab0d1aSIngo Weinhold } 2625ab0d1aSIngo Weinhold 2725ab0d1aSIngo Weinhold 2825ab0d1aSIngo Weinhold // Do 2925ab0d1aSIngo Weinhold status_t Do()3025ab0d1aSIngo WeinholdRepairJob::Do() 3125ab0d1aSIngo Weinhold { 32300868ceSIngo Weinhold int32 changeCounter = fPartition->ChangeCounter(); 33300868ceSIngo Weinhold status_t error = _kern_repair_partition(fPartition->PartitionID(), 34300868ceSIngo Weinhold &changeCounter, fCheckOnly); 35300868ceSIngo Weinhold if (error != B_OK) 36300868ceSIngo Weinhold return error; 37300868ceSIngo Weinhold 38300868ceSIngo Weinhold fPartition->SetChangeCounter(changeCounter); 39300868ceSIngo Weinhold 40300868ceSIngo Weinhold return B_OK; 4125ab0d1aSIngo Weinhold } 4225ab0d1aSIngo Weinhold 43