rewrite linux diskio code