> axeld@xxxxxxxxxxxxxxxx wrote: > > This function is used for every read or write operation at least once - > it's not an option to call anything else in there. > However, one should add a physical block size member to Volume, fill > that during Mount(), and just use that through a getter method. Then > indeed the DeviceOpener should retrieve the information (alongside the > rest). > Hi, Ok. I'll see if I can do that in the weekend =). > It's initialized like this in line 1639: > uint32 group = start >> fVolume->AllocationGroupShift(); > > The shift is the number of bits to shift a block offset in order to get > the group index. Therefore it returns allocation group containing the block containing the "start" byte offset argument? > You are indeed missing something :-) > The incoming "start" argument is the first block to check. The > CachedBlock is then set to the allocation group containing the that > block (retrieved as above), and the block offset within that group > ("groupBlock"). In each subsequent iteration, the groupBlock is > incremented until the end of the current allocation group is reached > which is when "group" is incremented as well, and "groupBlock" is reset > to 0. Ok. I'm not sure I understood correctly. Does this mean every allocation group contains it's own bitmap blocks? Sorry, for the false alarm... =) Janito _________________________________________________________________ Hotmail: Trusted email with Microsoft’s powerful SPAM protection. https://signup.live.com/signup.aspx?id=60969