Repair some FFS_EI code for ufsmount changes.
This commit is contained in:
parent
654308a5be
commit
0d7e3746eb
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ufs_bmap.c,v 1.31 2004/08/15 07:19:58 mycroft Exp $ */
|
||||
/* $NetBSD: ufs_bmap.c,v 1.32 2004/08/15 21:34:14 mycroft Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1991, 1993
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_bmap.c,v 1.31 2004/08/15 07:19:58 mycroft Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_bmap.c,v 1.32 2004/08/15 21:34:14 mycroft Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -156,12 +156,12 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, is_sequential)
|
|||
if (bn >= 0 && bn < NDADDR) {
|
||||
if (nump != NULL)
|
||||
*nump = 0;
|
||||
if (ip->i_ump->um_fstype == UFS1)
|
||||
if (ump->um_fstype == UFS1)
|
||||
daddr = (int32_t)ufs_rw32(ip->i_ffs1_db[bn],
|
||||
UFS_MPNEEDSWAP(vp->v_mount));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
else
|
||||
daddr = ufs_rw64(ip->i_ffs2_db[bn],
|
||||
UFS_MPNEEDSWAP(vp->v_mount));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
*bnp = blkptrtodb(ump, daddr);
|
||||
/*
|
||||
* Since this is FFS independent code, we are out of
|
||||
|
@ -181,21 +181,21 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, is_sequential)
|
|||
*bnp = -1;
|
||||
}
|
||||
} else if (runp) {
|
||||
if (ip->i_ump->um_fstype == UFS1) {
|
||||
if (ump->um_fstype == UFS1) {
|
||||
for (++bn; bn < NDADDR && *runp < maxrun &&
|
||||
is_sequential(ump,
|
||||
(int32_t)ufs_rw32(ip->i_ffs1_db[bn - 1],
|
||||
UFS_MPNEEDSWAP(vp->v_mount)),
|
||||
UFS_MPNEEDSWAP(ump)),
|
||||
(int32_t)ufs_rw32(ip->i_ffs1_db[bn],
|
||||
UFS_MPNEEDSWAP(vp->v_mount)));
|
||||
UFS_MPNEEDSWAP(ump)));
|
||||
++bn, ++*runp);
|
||||
} else {
|
||||
for (++bn; bn < NDADDR && *runp < maxrun &&
|
||||
is_sequential(ump,
|
||||
ufs_rw64(ip->i_ffs2_db[bn - 1],
|
||||
UFS_MPNEEDSWAP(vp->v_mount)),
|
||||
UFS_MPNEEDSWAP(ump)),
|
||||
ufs_rw64(ip->i_ffs2_db[bn],
|
||||
UFS_MPNEEDSWAP(vp->v_mount)));
|
||||
UFS_MPNEEDSWAP(ump)));
|
||||
++bn, ++*runp);
|
||||
}
|
||||
}
|
||||
|
@ -211,12 +211,12 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, is_sequential)
|
|||
num = *nump;
|
||||
|
||||
/* Get disk address out of indirect block array */
|
||||
if (ip->i_ump->um_fstype == UFS1)
|
||||
if (ump->um_fstype == UFS1)
|
||||
daddr = (int32_t)ufs_rw32(ip->i_ffs1_ib[xap->in_off],
|
||||
UFS_MPNEEDSWAP(vp->v_mount));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
else
|
||||
daddr = ufs_rw64(ip->i_ffs2_ib[xap->in_off],
|
||||
UFS_MPNEEDSWAP(vp->v_mount));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
|
||||
for (bp = NULL, ++xap; --num; ++xap) {
|
||||
/*
|
||||
|
@ -266,33 +266,33 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, is_sequential)
|
|||
return (error);
|
||||
}
|
||||
}
|
||||
if (ip->i_ump->um_fstype == UFS1) {
|
||||
if (ump->um_fstype == UFS1) {
|
||||
daddr = (int32_t)ufs_rw32(
|
||||
((int32_t *)bp->b_data)[xap->in_off],
|
||||
UFS_MPNEEDSWAP(mp));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
if (num == 1 && daddr && runp) {
|
||||
for (bn = xap->in_off + 1;
|
||||
bn < MNINDIR(ump) && *runp < maxrun &&
|
||||
is_sequential(ump,
|
||||
(int32_t)ufs_rw32(
|
||||
((int32_t *)bp->b_data)[bn-1],
|
||||
UFS_MPNEEDSWAP(mp)),
|
||||
UFS_MPNEEDSWAP(ump)),
|
||||
(int32_t)ufs_rw32(
|
||||
((int32_t *)bp->b_data)[bn],
|
||||
UFS_MPNEEDSWAP(mp)));
|
||||
UFS_MPNEEDSWAP(ump)));
|
||||
++bn, ++*runp);
|
||||
}
|
||||
} else {
|
||||
daddr = ufs_rw64(((int64_t *)bp->b_data)[xap->in_off],
|
||||
UFS_MPNEEDSWAP(mp));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
if (num == 1 && daddr && runp) {
|
||||
for (bn = xap->in_off + 1;
|
||||
bn < MNINDIR(ump) && *runp < maxrun &&
|
||||
is_sequential(ump,
|
||||
ufs_rw64(((int64_t *)bp->b_data)[bn-1],
|
||||
UFS_MPNEEDSWAP(mp)),
|
||||
UFS_MPNEEDSWAP(ump)),
|
||||
ufs_rw64(((int64_t *)bp->b_data)[bn],
|
||||
UFS_MPNEEDSWAP(mp)));
|
||||
UFS_MPNEEDSWAP(ump)));
|
||||
++bn, ++*runp);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ufs_lookup.c,v 1.58 2004/08/15 07:19:58 mycroft Exp $ */
|
||||
/* $NetBSD: ufs_lookup.c,v 1.59 2004/08/15 21:44:11 mycroft Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.58 2004/08/15 07:19:58 mycroft Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.59 2004/08/15 21:44:11 mycroft Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -958,16 +958,14 @@ ufs_dirremove(dvp, ip, flags, isrmdir)
|
|||
int flags;
|
||||
int isrmdir;
|
||||
{
|
||||
struct inode *dp;
|
||||
struct inode *dp = VTOI(dvp);
|
||||
struct direct *ep;
|
||||
struct buf *bp;
|
||||
int error;
|
||||
#ifdef FFS_EI
|
||||
const int needswap = UFS_MPNEEDSWAP(dvp->v_mount);
|
||||
const int needswap = UFS_MPNEEDSWAP(dp->i_ump);
|
||||
#endif
|
||||
|
||||
dp = VTOI(dvp);
|
||||
|
||||
if (flags & DOWHITEOUT) {
|
||||
/*
|
||||
* Whiteout entry: set d_ino to WINO.
|
||||
|
@ -1048,7 +1046,7 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir, iflags)
|
|||
error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, (void *)&ep, &bp);
|
||||
if (error)
|
||||
return (error);
|
||||
ep->d_ino = ufs_rw32(newinum, UFS_MPNEEDSWAP(vdp->v_mount));
|
||||
ep->d_ino = ufs_rw32(newinum, UFS_MPNEEDSWAP(dp->i_ump));
|
||||
if (!FSFMT(vdp))
|
||||
ep->d_type = newtype;
|
||||
oip->i_ffs_effnlink--;
|
||||
|
@ -1157,7 +1155,7 @@ ufs_checkpath(source, target, cred)
|
|||
struct vnode *vp = ITOV(target);
|
||||
int error, rootino, namlen;
|
||||
struct dirtemplate dirbuf;
|
||||
const int needswap = UFS_MPNEEDSWAP(vp->v_mount);
|
||||
const int needswap = UFS_MPNEEDSWAP(target->i_ump);
|
||||
|
||||
vp = ITOV(target);
|
||||
if (target->i_number == source->i_number) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ufs_vnops.c,v 1.119 2004/08/15 07:20:00 mycroft Exp $ */
|
||||
/* $NetBSD: ufs_vnops.c,v 1.120 2004/08/15 21:44:11 mycroft Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1993, 1995
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.119 2004/08/15 07:20:00 mycroft Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.120 2004/08/15 21:44:11 mycroft Exp $");
|
||||
|
||||
#ifndef _LKM
|
||||
#include "opt_quota.h"
|
||||
|
@ -140,16 +140,17 @@ ufs_mknod(void *v)
|
|||
ino = ip->i_number;
|
||||
ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
|
||||
if (vap->va_rdev != VNOVAL) {
|
||||
struct ufsmount *ump = ip->i_ump;
|
||||
/*
|
||||
* Want to be able to use this to make badblock
|
||||
* inodes, so don't truncate the dev number.
|
||||
*/
|
||||
if (ip->i_ump->um_fstype == UFS1)
|
||||
if (ump->um_fstype == UFS1)
|
||||
ip->i_ffs1_rdev = ufs_rw32(vap->va_rdev,
|
||||
UFS_MPNEEDSWAP(mp));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
else
|
||||
ip->i_ffs2_rdev = ufs_rw64(vap->va_rdev,
|
||||
UFS_MPNEEDSWAP(mp));
|
||||
UFS_MPNEEDSWAP(ump));
|
||||
}
|
||||
/*
|
||||
* Remove inode so that it will be reloaded by VFS_VGET and
|
||||
|
|
Loading…
Reference in New Issue