let alloc_inode () =
      let start = super_block.last_free_inode + 1 in
      let rec find current =
        let current = current mod super_block.inode_nb + 1 in
        let inode = read_inode current in
        if inode.stats.st_nlink = 0 then
          begin
            super_block.last_free_inode <- current;
            inode
          end
       else
         let next = current + 1 in
         if next = start then failwith "Disk is full"
         else find next in
      find start;;;