rem: FUNCTION_START(("offset = %Ld, size = %lu\n", offset, size));
context: bfs_get_file_map(fs_volume _fs, fs_vnode _node, off_t offset, size_t size,	struct file_io_vec *vecs, size_t *_count){	Volume *volume = (Volume *)_fs;	Inode *inode = (Inode *)_node;	int32 blockShift = volume->BlockShift();	size_t index = 0, max = *_count;	block_run run;	off_t fileOffset;	FUNCTION_START(("offset = %Ld, size = %lu\n", offset, size));	while (true) {		status_t status = inode->FindBlockRun(offset, run, fileOffset);		if (status != B_OK)			return status;		vecs[index].offset = volume->ToOffset(run) + offset - fileOffset;		vecs[index].length = (run.Length() << blockShift) - offset + fileOffset;		offset += vecs[index].length;		// are we already done?		if (size <= vecs[index].length			|| offset >= inode->Size()) {			*_count = index + 1;			return B_OK;		}		size -= vecs[index].length;		index++;		if (index >= max) {			// we're out of file_io_vecs; let's bail out			*_count = index;			return B_BUFFER_OVERFLOW;		}	}	// can never get here	return B_ERROR;}