diff options
author | jeff <jeff@FreeBSD.org> | 2003-10-06 03:28:03 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-10-06 03:28:03 +0000 |
commit | 2b7339ddea4e3c2dc47643a97c1903e28bca71e1 (patch) | |
tree | 92089d40e5a4ce8715498721f3c361fa8b9fc537 /sys/ufs/ffs | |
parent | 209da6c2f266a398ec79f8694511df946d5590b3 (diff) | |
download | FreeBSD-src-2b7339ddea4e3c2dc47643a97c1903e28bca71e1.zip FreeBSD-src-2b7339ddea4e3c2dc47643a97c1903e28bca71e1.tar.gz |
- My last commit to this file is still not safe, I believe that it may be
due to the recursion in indir_trunc().
Diffstat (limited to 'sys/ufs/ffs')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 6166424..768a6b5 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -2563,8 +2563,12 @@ indir_trunc(freeblks, dbn, level, lbn, countp) * a complete copy of the indirect block in memory for our use. * Otherwise we have to read the blocks in from the disk. */ +#ifdef notyet bp = getblk(freeblks->fb_devvp, dbn, (int)fs->fs_bsize, 0, 0, GB_NOCREAT); +#else + bp = incore(freeblks->fb_devvp, dbn); +#endif ACQUIRE_LOCK(&lk); if (bp != NULL && (wk = LIST_FIRST(&bp->b_dep)) != NULL) { if (wk->wk_type != D_INDIRDEP || @@ -2582,8 +2586,10 @@ indir_trunc(freeblks, dbn, level, lbn, countp) VFSTOUFS(freeblks->fb_mnt)->um_numindirdeps -= 1; FREE_LOCK(&lk); } else { +#ifdef notyet if (bp) brelse(bp); +#endif FREE_LOCK(&lk); error = bread(freeblks->fb_devvp, dbn, (int)fs->fs_bsize, NOCRED, &bp); |