- if (i % (fs->fs_fsize / sizeof(daddr_t)) == 0 ||
- bap[i - 1] == 0)
- pref = blkpref(ip->i_fs);
- else
- pref = bap[i - 1] + fs->fs_frag;
- nbp = alloc(ip, pref, fs->fs_bsize);
+ if (pref == 0)
+ if (j < NIADDR)
+ pref = blkpref(ip, lbn, 0,
+ (daddr_t *)0);
+ else
+ pref = blkpref(ip, lbn, i, &bap[0]);
+ nbp = alloc(ip, pref, (int)fs->fs_bsize);