- bno = fragextend(ip, cg, (long)bprev, osize, nsize);
- if (bno != 0) {
- do {
-#ifdef SECSIZE
- bp = bread(ip->i_dev, fsbtodb(fs, bno), osize,
- fs->fs_dbsize);
-#else SECSIZE
- bp = bread(ip->i_dev, fsbtodb(fs, bno), osize);
-#endif SECSIZE
- if (bp->b_flags & B_ERROR) {
- brelse(bp);
- return (NULL);
- }
- } while (brealloc(bp, nsize) == 0);
- bp->b_flags |= B_DONE;
- bzero(bp->b_un.b_addr + osize, (unsigned)nsize - osize);
+ if (bno = fragextend(ip, cg, (long)bprev, osize, nsize)) {
+ if (bp->b_blkno != fsbtodb(fs, bno))
+ panic("bad blockno");