SCCS-vsn: sys/ufs/lfs/lfs_inode.c 7.59
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)lfs_inode.c 7.58 (Berkeley) %G%
+ * @(#)lfs_inode.c 7.59 (Berkeley) %G%
*/
#include <sys/param.h>
*/
#include <sys/param.h>
daddr = *daddrp++;
SEGDEC;
}
daddr = *daddrp++;
SEGDEC;
}
- a_end[depth].in_off=NINDIR(fs)-1;
- if (ap->in_off > 0 && lbn == lastblock) {
+ a_end[depth].in_off = NINDIR(fs) - 1;
+ if (ap->in_off == 0)
+ brelse (bp);
+ else {
bzero(bp->b_un.b_daddr + ap->in_off,
fs->lfs_bsize -
ap->in_off * sizeof(daddr_t));
LFS_UBWRITE(bp);
bzero(bp->b_un.b_daddr + ap->in_off,
fs->lfs_bsize -
ap->in_off * sizeof(daddr_t));
LFS_UBWRITE(bp);
- if (a[1].in_off == 0) {
+ if (depth == 0 && a[1].in_off == 0) {
off = a[0].in_off;
daddr = ip->i_ib[off];
SEGDEC;
off = a[0].in_off;
daddr = ip->i_ib[off];
SEGDEC;