Re: DiskDevice API v2.3
Tyler Dauwalder <tyler-cyCl/[email protected]>
| Newsgroups | gmane.os.openbeos.storage |
|---|---|
| Message-ID | <[email protected]> |
> > - I left the parameters parameter in ValidateCreateChild() in case > > the child parameters somehow affect the min/max size of the > > potential > > child. > > Makes sense. > BTW, something feels wrong with the last parameter of > BPartition::CreateChild(): `**BPartition child'. > Mmh, I can't get hold of what that could be. ;-) Geeze, looks fine to me... :-P ;-) > > - int32 CommitModifications(bool synchronously = true, > > BMessenger progressMessenger = BMessenger(), > > bool receiveCompleteProgressUpdates = true, > > BMessage *template = NULL); > > still exists in BDiskDevice. We kind of talked about this > > previously, > > but I was never really convinced we came to a decision. I'm only > > kind > > of comfortable moving it into BPartition. Opinions? > > > > - I haven't done anything about BPartitionableSpace vs. > > BPartitioningInfo, as that's still on the table. > > It seems we have the following alternatives: > > 1) Leave it as it is. That has the drawbacks, that the information > would be stored in the BPartition hierarchy being of no interest to > the > user, and requiring some amount of updates, when BPartitions are > Resize()d or Move()d. > > 2) Introduce a BPartition::GetPartitionableSpaceAt(int32, off_t*, > off_t > *), which would > a) return a data stored in the BPartition object > b) retrieve the info from the kernel > Whereas a) has the same drawbacks as 1) (minus that it does use an > extra object). b) introduces overhead due to the syscall required per > invocation. Moreover the partition might change between two calls, > which probably renders the information invalid. One could simply make > it a requirement that the partition is locked, though. > > 3) Introduce a BPartitioningInfo with a similar method and a > BPartition::GetPartitioningInfo() to get it. Similar to 2 b), with > less > syscalls though (one per GetPartitioningInfo()). > > 4) Drop the whole partitionable space idea. > > 2 b) and 3) would be my favorites. Well, somehow I managed to miss the fact that GetPartitioningInfo() lives in BPartition, and that's the only thing about it I didn't like (the imaginary fact that it *didn't* live there :-). So lets go with 3) then. :-) -Tyler