let df p = let rec iter n block pos = if block = 0 then n else let buffer = read_block p block in let next = read_int buffer 0 in let n = n + pos + 1 in iter n next (p.block_word_size - 1) in let offset = p.free_block_nb mod p.block_word_size in iter 0 p.free_block_list offset |