summaryrefslogtreecommitdiff
path: root/sys/ufs/ffs/ffs_softdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs/ffs/ffs_softdep.c')
-rw-r--r--sys/ufs/ffs/ffs_softdep.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 519b3c85948..747ed4fe0b8 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_softdep.c,v 1.65 2005/12/14 22:04:56 pedro Exp $ */
+/* $OpenBSD: ffs_softdep.c,v 1.66 2005/12/17 13:56:01 pedro Exp $ */
/*
* Copyright 1998, 2000 Marshall Kirk McKusick. All Rights Reserved.
*
@@ -1630,7 +1630,7 @@ newfreefrag(ip, blkno, size)
panic("newfreefrag: frag size");
freefrag = pool_get(&freefrag_pool, PR_WAITOK);
freefrag->ff_list.wk_type = D_FREEFRAG;
- freefrag->ff_state = ip->i_ffs_uid & ~ONWORKLIST; /* XXX - used below */
+ freefrag->ff_state = ip->i_ffs_uid & ~ONWORKLIST; /* used below */
freefrag->ff_inum = ip->i_number;
freefrag->ff_mnt = ITOV(ip)->v_mount;
freefrag->ff_devvp = ip->i_devvp;
@@ -1648,13 +1648,15 @@ handle_workitem_freefrag(freefrag)
struct freefrag *freefrag;
{
struct inode tip;
+ struct ufs1_dinode dtip1;
tip.i_vnode = NULL;
+ tip.i_din1 = &dtip1;
tip.i_fs = VFSTOUFS(freefrag->ff_mnt)->um_fs;
tip.i_ump = VFSTOUFS(freefrag->ff_mnt);
tip.i_dev = freefrag->ff_devvp->v_rdev;
tip.i_number = freefrag->ff_inum;
- tip.i_ffs_uid = freefrag->ff_state & ~ONWORKLIST; /* XXX - set above */
+ tip.i_ffs_uid = freefrag->ff_state & ~ONWORKLIST; /* set above */
ffs_blkfree(&tip, freefrag->ff_blkno, freefrag->ff_fragsize);
pool_put(&freefrag_pool, freefrag);
}
@@ -1949,7 +1951,7 @@ softdep_setup_freeblocks(ip, length)
(int)fs->fs_bsize, NOCRED, &bp)) != 0)
softdep_error("softdep_setup_freeblocks", error);
*((struct ufs1_dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)) =
- ip->i_din1;
+ *ip->i_din1;
/*
* Find and eliminate any inode dependencies.
*/
@@ -2367,6 +2369,7 @@ handle_workitem_freeblocks(freeblks)
struct freeblks *freeblks;
{
struct inode tip;
+ struct ufs1_dinode dtip1;
daddr_t bn;
struct fs *fs;
int i, level, bsize;
@@ -2374,6 +2377,7 @@ handle_workitem_freeblocks(freeblks)
int error, allerror = 0;
ufs_lbn_t baselbns[NIADDR], tmpval;
+ tip.i_din1 = &dtip1;
tip.i_fs = fs = VFSTOUFS(freeblks->fb_mnt)->um_fs;
tip.i_number = freeblks->fb_previousinum;
tip.i_ump = VFSTOUFS(freeblks->fb_mnt);