Ticket #18502: patch-disk-io.c.diff

File patch-disk-io.c.diff, 1.7 KB (added by 0xffea@…, 15 years ago)
  • disk-io.c

    old new  
    143143        device = multi->stripes[0].dev;
    144144        device->total_ios++;
    145145        blocksize = min(blocksize, (u32)(64 * 1024));
     146#ifdef __APPLE__
     147        read(device->fd, &multi->stripes[0].physical, blocksize);
     148#else
    146149        readahead(device->fd, multi->stripes[0].physical, blocksize);
     150#endif
    147151        kfree(multi);
    148152        return 0;
    149153}
     
    699703        u64 bytenr;
    700704
    701705        if (sb_bytenr != BTRFS_SUPER_INFO_OFFSET) {
     706#ifdef __APPLE__
     707                ret = pread(fd, &buf, sizeof(buf), sb_bytenr);
     708#else
    702709                ret = pread64(fd, &buf, sizeof(buf), sb_bytenr);
     710#endif
    703711                if (ret < sizeof(buf))
    704712                        return -1;
    705713
     
    714722
    715723        for (i = 0; i < BTRFS_SUPER_MIRROR_MAX; i++) {
    716724                bytenr = btrfs_sb_offset(i);
     725#ifdef __APPLE__
     726                ret = pread(fd, &buf, sizeof(buf), bytenr);
     727#else
    717728                ret = pread64(fd, &buf, sizeof(buf), bytenr);
     729#endif
    718730                if (ret < sizeof(buf))
    719731                        break;
    720732
     
    747759                                      BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE);
    748760                btrfs_csum_final(crc, (char *)&sb->csum[0]);
    749761
     762#ifdef __APPLE__
     763                ret = pwrite(device->fd, sb, BTRFS_SUPER_INFO_SIZE,
     764                                root->fs_info->super_bytenr);
     765#else
    750766                ret = pwrite64(device->fd, sb, BTRFS_SUPER_INFO_SIZE,
    751767                               root->fs_info->super_bytenr);
     768#endif
    752769                BUG_ON(ret != BTRFS_SUPER_INFO_SIZE);
    753770                return 0;
    754771        }
     
    765782                                      BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE);
    766783                btrfs_csum_final(crc, (char *)&sb->csum[0]);
    767784
     785#ifdef __APPLE__
     786                ret = pwrite(device->fd, sb, BTRFS_SUPER_INFO_SIZE, bytenr);
     787#else
    768788                ret = pwrite64(device->fd, sb, BTRFS_SUPER_INFO_SIZE, bytenr);
     789#endif
    769790                BUG_ON(ret != BTRFS_SUPER_INFO_SIZE);
    770791        }
    771792        return 0;