Whoops, make that: fsidHash = fsid * 67289 % totalSectorsOnAllInodeZones; virtualSector = fsidHash * 2; for(i = 0; ; i++) { if(zone[i].type == INODE_ZONE) { if(zone[i].sectors <= virtualSector) { virtualSector -= zone[i].sectors; } else { break; } } sector = virtualSector + zone[i].start; partition = i; Well, close enough for pseudo-code anyway... -Ray