- rasize = blksize(fs, ip, rablock);
- if (ip->i_lastr + 1 == lbn)
- error = breada(ITOV(ip), lbn, size, rablock, rasize,
- NOCRED, &bp);
+ if (vp->v_lastr + 1 == lbn &&
+ lblktosize(fs, rablock) < ip->i_size)
+ error = breada(ITOV(ip), lbn, size, rablock,
+ blksize(fs, ip, rablock), NOCRED, &bp);