Improved the interaction between job queue and manager. Partitions should now be mark busy correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4223 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -81,6 +81,7 @@ public:
|
||||
|
||||
// manager must be locked
|
||||
status_t AddJobQueue(KDiskDeviceJobQueue *jobQueue);
|
||||
// the device must be write locked
|
||||
status_t RemoveJobQueue(KDiskDeviceJobQueue *jobQueue);
|
||||
status_t DeleteJobQueue(KDiskDeviceJobQueue *jobQueue);
|
||||
// called when the execution is done
|
||||
@@ -89,6 +90,11 @@ public:
|
||||
|
||||
KDiskDeviceJobFactory *JobFactory() const;
|
||||
|
||||
// manager must *not* be locked
|
||||
status_t UpdateBusyPartitions(KDiskDevice *device);
|
||||
status_t UpdateJobStatus(KDiskDeviceJob *job, uint32 status,
|
||||
bool updateBusyPartitions);
|
||||
|
||||
// Disk Systems
|
||||
|
||||
// manager must be locked
|
||||
@@ -118,8 +124,13 @@ private:
|
||||
|
||||
bool _RemoveJobQueue(KDiskDeviceJobQueue *jobQueue);
|
||||
|
||||
status_t _UpdateBusyPartitions(KDiskDevice *device);
|
||||
status_t _UpdateJobStatus(KDiskDeviceJob *job, uint32 status,
|
||||
bool updateBusyPartitions);
|
||||
|
||||
status_t _Scan(const char *path);
|
||||
status_t _ScanPartition(KPartition *partition);
|
||||
// the manager must be locked and the device write locked
|
||||
|
||||
struct DeviceMap;
|
||||
struct DiskSystemMap;
|
||||
|
||||
Reference in New Issue
Block a user