summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1997-10-16 10:50:27 +0000
committerphk <phk@FreeBSD.org>1997-10-16 10:50:27 +0000
commitd166441755d9516e482ede0d988b7989be25b10a (patch)
treead2fb706565dc877eddf12a6581bfa2467513503 /sys/ufs
parentefcfb5d9cd2ecb3d30ec4c7701bfe737dc1b4606 (diff)
downloadFreeBSD-src-d166441755d9516e482ede0d988b7989be25b10a.zip
FreeBSD-src-d166441755d9516e482ede0d988b7989be25b10a.tar.gz
VFS mega cleanup commit (x/N)
1. Add new file "sys/kern/vfs_default.c" where default actions for VOPs go. Implement proper defaults for ABORTOP, BWRITE, LEASE, POLL, REVOKE and STRATEGY. Various stuff spread over the entire tree belongs here. 2. Change VOP_BLKATOFF to a normal function in cd9660. 3. Kill VOP_BLKATOFF, VOP_TRUNCATE, VOP_VFREE, VOP_VALLOC. These are private interface functions between UFS and the underlying storage manager layer (FFS/LFS/MFS/EXT2FS). The functions now live in struct ufsmount instead. 4. Remove a kludge of VOP_ functions in all filesystems, that did nothing but obscure the simplicity and break the expandability. If a filesystem doesn't implement VOP_FOO, it shouldn't have an entry for it in its vnops table. The system will try to DTRT if it is not implemented. There are still some cruft left, but the bulk of it is done. 5. Fix another VCALL in vfs_cache.c (thanks Bruce!)
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_alloc.c42
-rw-r--r--sys/ufs/ffs/ffs_extern.h11
-rw-r--r--sys/ufs/ffs/ffs_inode.c29
-rw-r--r--sys/ufs/ffs/ffs_subr.c28
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c6
-rw-r--r--sys/ufs/ffs/ffs_vnops.c8
-rw-r--r--sys/ufs/lfs/lfs_alloc.c34
-rw-r--r--sys/ufs/lfs/lfs_extern.h12
-rw-r--r--sys/ufs/lfs/lfs_inode.c20
-rw-r--r--sys/ufs/lfs/lfs_subr.c28
-rw-r--r--sys/ufs/lfs/lfs_vnops.c10
-rw-r--r--sys/ufs/mfs/mfs_extern.h4
-rw-r--r--sys/ufs/mfs/mfs_vnops.c39
-rw-r--r--sys/ufs/mfs/mfsnode.h35
-rw-r--r--sys/ufs/ufs/ufs_extern.h9
-rw-r--r--sys/ufs/ufs/ufs_inode.c6
-rw-r--r--sys/ufs/ufs/ufs_lookup.c18
-rw-r--r--sys/ufs/ufs/ufs_readwrite.c4
-rw-r--r--sys/ufs/ufs/ufs_vnops.c34
-rw-r--r--sys/ufs/ufs/ufsmount.h11
20 files changed, 141 insertions, 247 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index 425bf64..85ef1b6 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_alloc.c 8.18 (Berkeley) 5/26/95
- * $Id: ffs_alloc.c,v 1.38 1997/10/14 14:22:23 phk Exp $
+ * $Id: ffs_alloc.c,v 1.39 1997/10/14 18:46:41 phk Exp $
*/
#include "opt_quota.h"
@@ -48,6 +48,7 @@
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
+#include <ufs/ufs/ufsmount.h>
#include <ufs/ffs/fs.h>
#include <ufs/ffs/ffs_extern.h>
@@ -545,23 +546,19 @@ fail:
* available inode is located.
*/
int
-ffs_valloc(ap)
- struct vop_valloc_args /* {
- struct vnode *a_pvp;
- int a_mode;
- struct ucred *a_cred;
- struct vnode **a_vpp;
- } */ *ap;
+ffs_valloc(pvp, mode, cred, vpp)
+ struct vnode *pvp;
+ int mode;
+ struct ucred *cred;
+ struct vnode **vpp;
{
- register struct vnode *pvp = ap->a_pvp;
register struct inode *pip;
register struct fs *fs;
register struct inode *ip;
- mode_t mode = ap->a_mode;
ino_t ino, ipref;
int cg, error;
- *ap->a_vpp = NULL;
+ *vpp = NULL;
pip = VTOI(pvp);
fs = pip->i_fs;
if (fs->fs_cstotal.cs_nifree == 0)
@@ -578,12 +575,12 @@ ffs_valloc(ap)
(allocfcn_t *)ffs_nodealloccg);
if (ino == 0)
goto noinodes;
- error = VFS_VGET(pvp->v_mount, ino, ap->a_vpp);
+ error = VFS_VGET(pvp->v_mount, ino, vpp);
if (error) {
- VOP_VFREE(pvp, ino, mode);
+ UFS_VFREE(pvp, ino, mode);
return (error);
}
- ip = VTOI(*ap->a_vpp);
+ ip = VTOI(*vpp);
if (ip->i_mode) {
printf("mode = 0%o, inum = %ld, fs = %s\n",
ip->i_mode, ip->i_number, fs->fs_fsmnt);
@@ -602,7 +599,7 @@ ffs_valloc(ap)
ip->i_gen = random() / 2 + 1;
return (0);
noinodes:
- ffs_fserr(fs, ap->a_cred->cr_uid, "out of inodes");
+ ffs_fserr(fs, cred->cr_uid, "out of inodes");
uprintf("\n%s: create/symlink failed, no inodes free\n", fs->fs_fsmnt);
return (ENOSPC);
}
@@ -1404,21 +1401,18 @@ ffs_checkblk(ip, bno, size)
* The specified inode is placed back in the free map.
*/
int
-ffs_vfree(ap)
- struct vop_vfree_args /* {
- struct vnode *a_pvp;
- ino_t a_ino;
- int a_mode;
- } */ *ap;
+ffs_vfree(pvp, ino, mode)
+ struct vnode *pvp;
+ ino_t ino;
+ int mode;
{
register struct fs *fs;
register struct cg *cgp;
register struct inode *pip;
- ino_t ino = ap->a_ino;
struct buf *bp;
int error, cg;
- pip = VTOI(ap->a_pvp);
+ pip = VTOI(pvp);
fs = pip->i_fs;
if ((u_int)ino >= fs->fs_ipg * fs->fs_ncg)
panic("ffs_vfree: range: dev = 0x%x, ino = %d, fs = %s",
@@ -1449,7 +1443,7 @@ ffs_vfree(ap)
cgp->cg_cs.cs_nifree++;
fs->fs_cstotal.cs_nifree++;
fs->fs_cs(fs, cg).cs_nifree++;
- if ((ap->a_mode & IFMT) == IFDIR) {
+ if ((mode & IFMT) == IFDIR) {
cgp->cg_cs.cs_ndir--;
fs->fs_cstotal.cs_ndir--;
fs->fs_cs(fs, cg).cs_ndir--;
diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h
index 7cc5251..4aa6118 100644
--- a/sys/ufs/ffs/ffs_extern.h
+++ b/sys/ufs/ffs/ffs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_extern.h 8.6 (Berkeley) 3/30/95
- * $Id: ffs_extern.h,v 1.17 1997/09/27 13:40:05 kato Exp $
+ * $Id: ffs_extern.h,v 1.18 1997/10/10 18:16:58 phk Exp $
*/
#ifndef _UFS_FFS_EXTERN_H
@@ -65,7 +65,7 @@ int ffs_alloc __P((struct inode *,
ufs_daddr_t, ufs_daddr_t, int, struct ucred *, ufs_daddr_t *));
int ffs_balloc __P((struct inode *,
ufs_daddr_t, int, struct ucred *, struct buf **, int));
-int ffs_blkatoff __P((struct vop_blkatoff_args *));
+int ffs_blkatoff __P((struct vnode *, off_t, char **, struct buf **));
void ffs_blkfree __P((struct inode *, ufs_daddr_t, long));
ufs_daddr_t ffs_blkpref __P((struct inode *, ufs_daddr_t, int, ufs_daddr_t *));
int ffs_bmap __P((struct vop_bmap_args *));
@@ -84,11 +84,12 @@ int ffs_realloccg __P((struct inode *,
void ffs_setblock __P((struct fs *, u_char *, ufs_daddr_t));
int ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
int ffs_sync __P((struct mount *, int, struct ucred *, struct proc *));
-int ffs_truncate __P((struct vop_truncate_args *));
+int ffs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
int ffs_unmount __P((struct mount *, int, struct proc *));
int ffs_update __P((struct vop_update_args *));
-int ffs_valloc __P((struct vop_valloc_args *));
-int ffs_vfree __P((struct vop_vfree_args *));
+int ffs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **));
+
+int ffs_vfree __P((struct vnode *, ino_t, int));
int ffs_vget __P((struct mount *, ino_t, struct vnode **));
int ffs_vptofh __P((struct vnode *, struct fid *));
diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c
index 99dc77b..78cf65c 100644
--- a/sys/ufs/ffs/ffs_inode.c
+++ b/sys/ufs/ffs/ffs_inode.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_inode.c 8.13 (Berkeley) 4/21/95
- * $Id: ffs_inode.c,v 1.26 1997/03/22 06:53:29 bde Exp $
+ * $Id: ffs_inode.c,v 1.27 1997/09/02 20:06:44 bde Exp $
*/
#include "opt_quota.h"
@@ -149,21 +149,18 @@ ffs_update(ap)
* disk blocks.
*/
int
-ffs_truncate(ap)
- struct vop_truncate_args /* {
- struct vnode *a_vp;
- off_t a_length;
- int a_flags;
- struct ucred *a_cred;
- struct proc *a_p;
- } */ *ap;
+ffs_truncate(vp, length, flags, cred, p)
+ struct vnode *vp;
+ off_t length;
+ int flags;
+ struct ucred *cred;
+ struct proc *p;
{
- register struct vnode *ovp = ap->a_vp;
+ register struct vnode *ovp = vp;
ufs_daddr_t lastblock;
register struct inode *oip;
ufs_daddr_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR];
ufs_daddr_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR];
- off_t length = ap->a_length;
register struct fs *fs;
struct buf *bp;
int offset, size, level;
@@ -210,9 +207,9 @@ ffs_truncate(ap)
offset = blkoff(fs, length - 1);
lbn = lblkno(fs, length - 1);
aflags = B_CLRBUF;
- if (ap->a_flags & IO_SYNC)
+ if (flags & IO_SYNC)
aflags |= B_SYNC;
- error = ffs_balloc(oip, lbn, offset + 1, ap->a_cred,
+ error = ffs_balloc(oip, lbn, offset + 1, cred,
&bp, aflags);
if (error)
return (error);
@@ -240,9 +237,9 @@ ffs_truncate(ap)
} else {
lbn = lblkno(fs, length);
aflags = B_CLRBUF;
- if (ap->a_flags & IO_SYNC)
+ if (flags & IO_SYNC)
aflags |= B_SYNC;
- error = ffs_balloc(oip, lbn, offset, ap->a_cred, &bp, aflags);
+ error = ffs_balloc(oip, lbn, offset, cred, &bp, aflags);
if (error)
return (error);
oip->i_size = length;
@@ -296,7 +293,7 @@ ffs_truncate(ap)
bcopy((caddr_t)oldblks, (caddr_t)&oip->i_db[0], sizeof oldblks);
oip->i_size = osize;
vflags = ((length > 0) ? V_SAVE : 0) | V_SAVEMETA;
- allerror = vinvalbuf(ovp, vflags, ap->a_cred, ap->a_p, 0, 0);
+ allerror = vinvalbuf(ovp, vflags, cred, p, 0, 0);
/*
* Indirect blocks first.
diff --git a/sys/ufs/ffs/ffs_subr.c b/sys/ufs/ffs/ffs_subr.c
index 1387b20..06d5b55 100644
--- a/sys/ufs/ffs/ffs_subr.c
+++ b/sys/ufs/ffs/ffs_subr.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_subr.c 8.5 (Berkeley) 3/21/95
- * $Id: ffs_subr.c,v 1.11 1997/02/22 09:47:04 peter Exp $
+ * $Id: ffs_subr.c,v 1.12 1997/03/09 06:00:42 mpp Exp $
*/
#include <sys/param.h>
@@ -57,13 +57,11 @@
* remaining space in the directory.
*/
int
-ffs_blkatoff(ap)
- struct vop_blkatoff_args /* {
- struct vnode *a_vp;
- off_t a_offset;
- char **a_res;
- struct buf **a_bpp;
- } */ *ap;
+ffs_blkatoff(vp, offset, res, bpp)
+ struct vnode *vp;
+ off_t offset;
+ char **res;
+ struct buf **bpp;
{
struct inode *ip;
register struct fs *fs;
@@ -71,20 +69,20 @@ ffs_blkatoff(ap)
ufs_daddr_t lbn;
int bsize, error;
- ip = VTOI(ap->a_vp);
+ ip = VTOI(vp);
fs = ip->i_fs;
- lbn = lblkno(fs, ap->a_offset);
+ lbn = lblkno(fs, offset);
bsize = blksize(fs, ip, lbn);
- *ap->a_bpp = NULL;
- error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp);
+ *bpp = NULL;
+ error = bread(vp, lbn, bsize, NOCRED, &bp);
if (error) {
brelse(bp);
return (error);
}
- if (ap->a_res)
- *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset);
- *ap->a_bpp = bp;
+ if (res)
+ *res = (char *)bp->b_data + blkoff(fs, offset);
+ *bpp = bp;
return (0);
}
#endif
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index 05ee306..c053477 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95
- * $Id: ffs_vfsops.c,v 1.58 1997/10/11 18:31:36 phk Exp $
+ * $Id: ffs_vfsops.c,v 1.59 1997/10/12 20:26:12 phk Exp $
*/
#include "opt_quota.h"
@@ -555,6 +555,10 @@ ffs_mountfs(devvp, mp, p, malloctype)
ump->um_malloctype = malloctype;
ump->um_fs = malloc((u_long)fs->fs_sbsize, M_UFSMNT,
M_WAITOK);
+ ump->um_blkatoff = ffs_blkatoff;
+ ump->um_truncate = ffs_truncate;
+ ump->um_valloc = ffs_valloc;
+ ump->um_vfree = ffs_vfree;
bcopy(bp->b_data, ump->um_fs, (u_int)fs->fs_sbsize);
if (fs->fs_sbsize < SBSIZE)
bp->b_flags |= B_INVAL;
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index d3b9085..254d5e5 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95
- * $Id: ffs_vnops.c,v 1.33 1997/10/15 10:05:17 phk Exp $
+ * $Id: ffs_vnops.c,v 1.34 1997/10/15 13:23:47 phk Exp $
*/
#include <sys/param.h>
@@ -73,15 +73,11 @@ static int ffs_write __P((struct vop_write_args *));
vop_t **ffs_vnodeop_p;
static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
- { &vop_blkatoff_desc, (vop_t *) ffs_blkatoff },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
{ &vop_getpages_desc, (vop_t *) ffs_getpages },
{ &vop_read_desc, (vop_t *) ffs_read },
{ &vop_reallocblks_desc, (vop_t *) ffs_reallocblks },
- { &vop_truncate_desc, (vop_t *) ffs_truncate },
{ &vop_update_desc, (vop_t *) ffs_update },
- { &vop_valloc_desc, (vop_t *) ffs_valloc },
- { &vop_vfree_desc, (vop_t *) ffs_vfree },
{ &vop_write_desc, (vop_t *) ffs_write },
{ NULL, NULL }
};
@@ -93,7 +89,6 @@ static struct vnodeopv_entry_desc ffs_specop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
{ &vop_update_desc, (vop_t *) ffs_update },
- { &vop_vfree_desc, (vop_t *) ffs_vfree },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_specop_opv_desc =
@@ -104,7 +99,6 @@ static struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
{ &vop_update_desc, (vop_t *) ffs_update },
- { &vop_vfree_desc, (vop_t *) ffs_vfree },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_fifoop_opv_desc =
diff --git a/sys/ufs/lfs/lfs_alloc.c b/sys/ufs/lfs/lfs_alloc.c
index 797d0ba..a3f979d 100644
--- a/sys/ufs/lfs/lfs_alloc.c
+++ b/sys/ufs/lfs/lfs_alloc.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_alloc.c 8.7 (Berkeley) 5/14/95
- * $Id: lfs_alloc.c,v 1.16 1997/10/14 14:22:29 phk Exp $
+ * $Id: lfs_alloc.c,v 1.17 1997/10/14 18:46:43 phk Exp $
*/
#include "opt_quota.h"
@@ -60,13 +60,11 @@ extern u_long nextgennumber;
/* Allocate a new inode. */
/* ARGSUSED */
int
-lfs_valloc(ap)
- struct vop_valloc_args /* {
- struct vnode *a_pvp;
- int a_mode;
- struct ucred *a_cred;
- struct vnode **a_vpp;
- } */ *ap;
+lfs_valloc(pvp, mode, cred, vpp)
+ struct vnode *pvp;
+ int mode;
+ struct ucred *cred;
+ struct vnode **vpp;
{
struct lfs *fs;
struct buf *bp;
@@ -79,7 +77,7 @@ lfs_valloc(ap)
int error;
/* Get the head of the freelist. */
- fs = VTOI(ap->a_pvp)->i_lfs;
+ fs = VTOI(pvp)->i_lfs;
new_ino = fs->lfs_free;
#ifdef ALLOCPRINT
printf("lfs_ialloc: allocate inode %d\n", new_ino);
@@ -120,7 +118,7 @@ lfs_valloc(ap)
}
/* Create a vnode to associate with the inode. */
- if (error = lfs_vcreate(ap->a_pvp->v_mount, new_ino, &vp))
+ if (error = lfs_vcreate(pvp->v_mount, new_ino, &vp))
return (error);
@@ -139,11 +137,11 @@ lfs_valloc(ap)
if (error = ufs_vinit(vp->v_mount, lfs_specop_p, LFS_FIFOOPS, &vp)) {
vput(vp);
- *ap->a_vpp = NULL;
+ *vpp = NULL;
return (error);
}
- *ap->a_vpp = vp;
+ *vpp = vp;
vp->v_flag |= VDIROP;
VREF(ip->i_devvp);
@@ -206,12 +204,10 @@ lfs_vcreate(mp, ino, vpp)
/* Free an inode. */
/* ARGUSED */
int
-lfs_vfree(ap)
- struct vop_vfree_args /* {
- struct vnode *a_pvp;
- ino_t a_ino;
- int a_mode;
- } */ *ap;
+lfs_vfree(pvp, ino, mode)
+ struct vnode *pvp;
+ ino_t ino;
+ int mode;
{
SEGUSE *sup;
struct buf *bp;
@@ -222,7 +218,7 @@ lfs_vfree(ap)
ino_t ino;
/* Get the inode number and file system. */
- ip = VTOI(ap->a_pvp);
+ ip = VTOI(pvp);
fs = ip->i_lfs;
ino = ip->i_number;
if (ip->i_flag & IN_MODIFIED) {
diff --git a/sys/ufs/lfs/lfs_extern.h b/sys/ufs/lfs/lfs_extern.h
index acab203..030fedd 100644
--- a/sys/ufs/lfs/lfs_extern.h
+++ b/sys/ufs/lfs/lfs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_extern.h 8.6 (Berkeley) 5/8/95
- * $Id: lfs_extern.h,v 1.16 1997/10/10 18:17:20 phk Exp $
+ * $Id: lfs_extern.h,v 1.17 1997/10/12 20:26:15 phk Exp $
*/
#ifndef _UFS_LFS_LFS_EXTERN_H_
@@ -39,15 +39,17 @@
#ifdef KERNEL
+#ifdef MALLOC_DECLARE
MALLOC_DECLARE(M_LFSNODE);
MALLOC_DECLARE(M_SEGMENT); /* XXX should be M_LFSSEGMENT ?? */
+#endif
struct inode;
struct mount;
struct nameidata;
int lfs_balloc __P((struct vnode *, int, u_long, ufs_daddr_t, struct buf **));
-int lfs_blkatoff __P((struct vop_blkatoff_args *));
+int lfs_blkatoff __P((struct vnode *, off_t, char **, struct buf **));
int lfs_bwrite __P((struct vop_bwrite_args *));
int lfs_check __P((struct vnode *, ufs_daddr_t));
void lfs_free_buffer __P((caddr_t, int));
@@ -65,12 +67,12 @@ void lfs_segunlock __P((struct lfs *));
int lfs_segwrite __P((struct mount *, int));
#define lfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
size_t, struct proc *)))eopnotsupp)
-int lfs_truncate __P((struct vop_truncate_args *));
+int lfs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
int lfs_update __P((struct vop_update_args *));
void lfs_updatemeta __P((struct segment *));
-int lfs_valloc __P((struct vop_valloc_args *));
+int lfs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **));
int lfs_vcreate __P((struct mount *, ino_t, struct vnode **));
-int lfs_vfree __P((struct vop_vfree_args *));
+int lfs_vfree __P((struct vnode *, ino_t, int));
int lfs_vflush __P((struct vnode *));
int lfs_vref __P((struct vnode *));
void lfs_vunref __P((struct vnode *));
diff --git a/sys/ufs/lfs/lfs_inode.c b/sys/ufs/lfs/lfs_inode.c
index 545c1df..6b03151 100644
--- a/sys/ufs/lfs/lfs_inode.c
+++ b/sys/ufs/lfs/lfs_inode.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_inode.c 8.9 (Berkeley) 5/8/95
- * $Id: lfs_inode.c,v 1.17 1997/03/22 09:33:55 bde Exp $
+ * $Id: lfs_inode.c,v 1.18 1997/09/02 20:06:48 bde Exp $
*/
#include "opt_quota.h"
@@ -154,20 +154,16 @@ lfs_update(ap)
*/
/* ARGSUSED */
int
-lfs_truncate(ap)
- struct vop_truncate_args /* {
- struct vnode *a_vp;
- off_t a_length;
- int a_flags;
- struct ucred *a_cred;
- struct proc *a_p;
- } */ *ap;
+lfs_truncate(vp, length, flags, cred, p)
+ struct vnode *vp;
+ off_t length;
+ int flags;
+ struct ucred *cred;
+ struct proc *p;
{
register struct indir *inp;
register int i;
register ufs_daddr_t *daddrp;
- register struct vnode *vp = ap->a_vp;
- off_t length = ap->a_length;
struct buf *bp, *sup_bp;
struct timeval tv;
struct ifile *ifp;
@@ -378,7 +374,7 @@ lfs_truncate(ap)
}
#endif
fs->lfs_avail += fragstodb(fs, a_released);
- e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, ap->a_cred, ap->a_p,
+ e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, cred, p,
0, 0);
e2 = VOP_UPDATE(vp, &tv, &tv, 0);
return (e1 ? e1 : e2 ? e2 : 0);
diff --git a/sys/ufs/lfs/lfs_subr.c b/sys/ufs/lfs/lfs_subr.c
index 62ab3ea..ad4fbcc 100644
--- a/sys/ufs/lfs/lfs_subr.c
+++ b/sys/ufs/lfs/lfs_subr.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_subr.c 8.4 (Berkeley) 5/8/95
- * $Id: lfs_subr.c,v 1.10 1997/02/22 09:47:23 peter Exp $
+ * $Id: lfs_subr.c,v 1.11 1997/08/02 14:33:21 bde Exp $
*/
#include <sys/param.h>
@@ -53,13 +53,11 @@
* remaining space in the directory.
*/
int
-lfs_blkatoff(ap)
- struct vop_blkatoff_args /* {
- struct vnode *a_vp;
- off_t a_offset;
- char **a_res;
- struct buf **a_bpp;
- } */ *ap;
+lfs_blkatoff(vp, offset, res, bpp)
+ struct vnode *vp;
+ off_t offset;
+ char **res;
+ struct buf **bpp;
{
register struct lfs *fs;
struct inode *ip;
@@ -67,19 +65,19 @@ lfs_blkatoff(ap)
ufs_daddr_t lbn;
int bsize, error;
- ip = VTOI(ap->a_vp);
+ ip = VTOI(vp);
fs = ip->i_lfs;
- lbn = lblkno(fs, ap->a_offset);
+ lbn = lblkno(fs, offset);
bsize = blksize(fs, ip, lbn);
- *ap->a_bpp = NULL;
- if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) {
+ *bpp = NULL;
+ if (error = bread(vp, lbn, bsize, NOCRED, &bp)) {
brelse(bp);
return (error);
}
- if (ap->a_res)
- *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset);
- *ap->a_bpp = bp;
+ if (res)
+ *res = (char *)bp->b_data + blkoff(fs, offset);
+ *bpp = bp;
return (0);
}
diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c
index b7d930f..a440b2b 100644
--- a/sys/ufs/lfs/lfs_vnops.c
+++ b/sys/ufs/lfs/lfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_vnops.c 8.13 (Berkeley) 6/10/95
- * $Id: lfs_vnops.c,v 1.26 1997/10/15 10:05:23 phk Exp $
+ * $Id: lfs_vnops.c,v 1.27 1997/10/15 13:23:52 phk Exp $
*/
#include <sys/param.h>
@@ -56,6 +56,7 @@
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
+#include <ufs/ufs/ufsmount.h>
#include <ufs/ufs/ufs_extern.h>
#include <ufs/lfs/lfs.h>
@@ -73,17 +74,12 @@ static int lfs_write __P((struct vop_write_args *));
vop_t **lfs_vnodeop_p;
static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
-
- { &vop_blkatoff_desc, (vop_t *) lfs_blkatoff },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_close_desc, (vop_t *) lfs_close },
{ &vop_fsync_desc, (vop_t *) lfs_fsync },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
{ &vop_read_desc, (vop_t *) lfs_read },
- { &vop_truncate_desc, (vop_t *) lfs_truncate },
{ &vop_update_desc, (vop_t *) lfs_update },
- { &vop_valloc_desc, (vop_t *) lfs_valloc },
- { &vop_vfree_desc, (vop_t *) lfs_vfree },
{ &vop_write_desc, (vop_t *) lfs_write },
{ &vop_lookup_desc, (vop_t *) ufs_lookup },
{ NULL, NULL }
@@ -97,7 +93,6 @@ static struct vnodeopv_entry_desc lfs_specop_entries[] = {
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
{ &vop_update_desc, (vop_t *) lfs_update },
- { &vop_vfree_desc, (vop_t *) lfs_vfree },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_specop_opv_desc =
@@ -109,7 +104,6 @@ static struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
{ &vop_update_desc, (vop_t *) lfs_update },
- { &vop_vfree_desc, (vop_t *) lfs_vfree },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_fifoop_opv_desc =
diff --git a/sys/ufs/mfs/mfs_extern.h b/sys/ufs/mfs/mfs_extern.h
index 6b3dc8b..465e434 100644
--- a/sys/ufs/mfs/mfs_extern.h
+++ b/sys/ufs/mfs/mfs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mfs_extern.h 8.4 (Berkeley) 3/30/95
- * $Id$
+ * $Id: mfs_extern.h,v 1.9 1997/02/22 09:47:31 peter Exp $
*/
#ifndef _UFS_MFS_MFS_EXTERN_H_
@@ -44,6 +44,4 @@ void mfs_doio __P((struct buf *bp, caddr_t base));
int mfs_mountfs __P((struct vnode *, struct mount *, struct proc *));
int mfs_mountroot __P((void));
-#define mfs_revoke vop_revoke
-
#endif /* !_UFS_MFS_MFS_EXTERN_H_ */
diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c
index ce18df5..0c552bd 100644
--- a/sys/ufs/mfs/mfs_vnops.c
+++ b/sys/ufs/mfs/mfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mfs_vnops.c 8.11 (Berkeley) 5/22/95
- * $Id: mfs_vnops.c,v 1.23 1997/10/15 10:05:29 phk Exp $
+ * $Id: mfs_vnops.c,v 1.24 1997/10/15 13:23:57 phk Exp $
*/
#include <sys/param.h>
@@ -66,48 +66,19 @@ static int mfs_strategy __P((struct vop_strategy_args *)); /* XXX */
*/
vop_t **mfs_vnodeop_p;
static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) mfs_abortop },
- { &vop_access_desc, (vop_t *) mfs_access },
- { &vop_advlock_desc, (vop_t *) mfs_advlock },
- { &vop_blkatoff_desc, (vop_t *) mfs_blkatoff },
+ { &vop_default_desc, (vop_t *) mfs_badop },
{ &vop_bmap_desc, (vop_t *) mfs_bmap },
- { &vop_bwrite_desc, (vop_t *) mfs_bwrite },
{ &vop_close_desc, (vop_t *) mfs_close },
- { &vop_create_desc, (vop_t *) mfs_create },
{ &vop_fsync_desc, (vop_t *) mfs_fsync },
- { &vop_getattr_desc, (vop_t *) mfs_getattr },
{ &vop_inactive_desc, (vop_t *) mfs_inactive },
{ &vop_ioctl_desc, (vop_t *) mfs_ioctl },
- { &vop_islocked_desc, (vop_t *) mfs_islocked },
- { &vop_link_desc, (vop_t *) mfs_link },
- { &vop_lock_desc, (vop_t *) mfs_lock },
- { &vop_lookup_desc, (vop_t *) mfs_lookup },
- { &vop_mkdir_desc, (vop_t *) mfs_mkdir },
- { &vop_mknod_desc, (vop_t *) mfs_mknod },
- { &vop_mmap_desc, (vop_t *) mfs_mmap },
+ { &vop_islocked_desc, (vop_t *) vop_noislocked },
+ { &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_open_desc, (vop_t *) mfs_open },
- { &vop_pathconf_desc, (vop_t *) mfs_pathconf },
- { &vop_poll_desc, (vop_t *) mfs_poll },
{ &vop_print_desc, (vop_t *) mfs_print },
- { &vop_read_desc, (vop_t *) mfs_read },
- { &vop_readdir_desc, (vop_t *) mfs_readdir },
- { &vop_readlink_desc, (vop_t *) mfs_readlink },
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) mfs_remove },
- { &vop_rename_desc, (vop_t *) mfs_rename },
- { &vop_revoke_desc, (vop_t *) mfs_revoke },
- { &vop_rmdir_desc, (vop_t *) mfs_rmdir },
- { &vop_seek_desc, (vop_t *) mfs_seek },
- { &vop_setattr_desc, (vop_t *) mfs_setattr },
{ &vop_strategy_desc, (vop_t *) mfs_strategy },
- { &vop_symlink_desc, (vop_t *) mfs_symlink },
- { &vop_truncate_desc, (vop_t *) mfs_truncate },
- { &vop_unlock_desc, (vop_t *) mfs_unlock },
- { &vop_update_desc, (vop_t *) mfs_update },
- { &vop_valloc_desc, (vop_t *) mfs_valloc },
- { &vop_vfree_desc, (vop_t *) mfs_vfree },
- { &vop_write_desc, (vop_t *) mfs_write },
+ { &vop_unlock_desc, (vop_t *) vop_nounlock },
{ NULL, NULL }
};
static struct vnodeopv_desc mfs_vnodeop_opv_desc =
diff --git a/sys/ufs/mfs/mfsnode.h b/sys/ufs/mfs/mfsnode.h
index 53fe40a..34b7b6b 100644
--- a/sys/ufs/mfs/mfsnode.h
+++ b/sys/ufs/mfs/mfsnode.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mfsnode.h 8.3 (Berkeley) 5/19/95
- * $Id: mfsnode.h,v 1.8 1997/02/22 09:47:34 peter Exp $
+ * $Id: mfsnode.h,v 1.9 1997/09/14 02:58:08 peter Exp $
*/
#ifndef _UFS_MFS_MFSNODE_H_
@@ -57,37 +57,4 @@ struct mfsnode {
#define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data)
#define MFSTOV(mfsp) ((mfsp)->mfs_vnode)
-/* Prototypes for MFS operations on vnodes. */
-#define mfs_lookup ((int (*) __P((struct vop_lookup_args *)))mfs_badop)
-#define mfs_create ((int (*) __P((struct vop_create_args *)))mfs_badop)
-#define mfs_mknod ((int (*) __P((struct vop_mknod_args *)))mfs_badop)
-#define mfs_access ((int (*) __P((struct vop_access_args *)))mfs_badop)
-#define mfs_getattr ((int (*) __P((struct vop_getattr_args *)))mfs_badop)
-#define mfs_setattr ((int (*) __P((struct vop_setattr_args *)))mfs_badop)
-#define mfs_read ((int (*) __P((struct vop_read_args *)))mfs_badop)
-#define mfs_write ((int (*) __P((struct vop_write_args *)))mfs_badop)
-#define mfs_poll ((int (*) __P((struct vop_poll_args *)))mfs_badop)
-#define mfs_mmap ((int (*) __P((struct vop_mmap_args *)))mfs_badop)
-#define mfs_seek ((int (*) __P((struct vop_seek_args *)))mfs_badop)
-#define mfs_remove ((int (*) __P((struct vop_remove_args *)))mfs_badop)
-#define mfs_link ((int (*) __P((struct vop_link_args *)))mfs_badop)
-#define mfs_rename ((int (*) __P((struct vop_rename_args *)))mfs_badop)
-#define mfs_mkdir ((int (*) __P((struct vop_mkdir_args *)))mfs_badop)
-#define mfs_rmdir ((int (*) __P((struct vop_rmdir_args *)))mfs_badop)
-#define mfs_symlink ((int (*) __P((struct vop_symlink_args *)))mfs_badop)
-#define mfs_readdir ((int (*) __P((struct vop_readdir_args *)))mfs_badop)
-#define mfs_readlink ((int (*) __P((struct vop_readlink_args *)))mfs_badop)
-#define mfs_abortop ((int (*) __P((struct vop_abortop_args *)))mfs_badop)
-#define mfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
-#define mfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
-#define mfs_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
-#define mfs_pathconf ((int (*) __P((struct vop_pathconf_args *)))mfs_badop)
-#define mfs_advlock ((int (*) __P((struct vop_advlock_args *)))mfs_badop)
-#define mfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))mfs_badop)
-#define mfs_valloc ((int (*) __P((struct vop_valloc_args *)))mfs_badop)
-#define mfs_vfree ((int (*) __P((struct vop_vfree_args *)))mfs_badop)
-#define mfs_truncate ((int (*) __P((struct vop_truncate_args *)))mfs_badop)
-#define mfs_update ((int (*) __P((struct vop_update_args *)))mfs_badop)
-#define mfs_bwrite ((int (*) __P((struct vop_bwrite_args *)))vn_bwrite)
-
#endif
diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h
index 1c565d4..e897ede 100644
--- a/sys/ufs/ufs/ufs_extern.h
+++ b/sys/ufs/ufs/ufs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_extern.h 8.10 (Berkeley) 5/14/95
- * $Id: ufs_extern.h,v 1.18 1997/10/10 18:18:12 phk Exp $
+ * $Id: ufs_extern.h,v 1.19 1997/10/15 13:24:02 phk Exp $
*/
#ifndef _UFS_UFS_EXTERN_H_
@@ -90,11 +90,6 @@ int ufs_inactive __P((struct vop_inactive_args *));
int ufs_init __P((struct vfsconf *));
int ufs_ioctl __P((struct vop_ioctl_args *));
int ufs_islocked __P((struct vop_islocked_args *));
-#ifdef NFS
-#define ufs_lease_check lease_check
-#else
-#define ufs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
-#endif
int ufs_link __P((struct vop_link_args *));
int ufs_lock __P((struct vop_lock_args *));
int ufs_lookup __P((struct vop_cachedlookup_args *));
@@ -110,11 +105,9 @@ int ufs_readlink __P((struct vop_readlink_args *));
int ufs_reclaim __P((struct vop_reclaim_args *));
int ufs_remove __P((struct vop_remove_args *));
int ufs_rename __P((struct vop_rename_args *));
-#define ufs_revoke vop_revoke
int ufs_rmdir __P((struct vop_rmdir_args *));
int ufs_root __P((struct mount *, struct vnode **));
int ufs_seek __P((struct vop_seek_args *));
-#define ufs_poll vop_nopoll
int ufs_setattr __P((struct vop_setattr_args *));
int ufs_start __P((struct mount *, int, struct proc *));
int ufs_strategy __P((struct vop_strategy_args *));
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c
index 812e86d..e635f29 100644
--- a/sys/ufs/ufs/ufs_inode.c
+++ b/sys/ufs/ufs/ufs_inode.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_inode.c 8.9 (Berkeley) 5/14/95
- * $Id: ufs_inode.c,v 1.17 1997/10/14 14:22:31 phk Exp $
+ * $Id: ufs_inode.c,v 1.18 1997/10/14 18:46:48 phk Exp $
*/
#include "opt_quota.h"
@@ -83,12 +83,12 @@ ufs_inactive(ap)
if (!getinoquota(ip))
(void)chkiq(ip, -1, NOCRED, 0);
#endif
- error = VOP_TRUNCATE(vp, (off_t)0, 0, NOCRED, p);
+ error = UFS_TRUNCATE(vp, (off_t)0, 0, NOCRED, p);
ip->i_rdev = 0;
mode = ip->i_mode;
ip->i_mode = 0;
ip->i_flag |= IN_CHANGE | IN_UPDATE;
- VOP_VFREE(vp, ip->i_number, mode);
+ UFS_VFREE(vp, ip->i_number, mode);
}
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) {
gettime(&tv);
diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c
index e0eb989..5f0201a 100644
--- a/sys/ufs/ufs/ufs_lookup.c
+++ b/sys/ufs/ufs/ufs_lookup.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_lookup.c 8.15 (Berkeley) 6/16/95
- * $Id: ufs_lookup.c,v 1.16 1997/09/02 20:06:58 bde Exp $
+ * $Id: ufs_lookup.c,v 1.17 1997/09/10 19:47:37 phk Exp $
*/
#include <sys/param.h>
@@ -185,7 +185,7 @@ ufs_lookup(ap)
} else {
dp->i_offset = dp->i_diroff;
if ((entryoffsetinblock = dp->i_offset & bmask) &&
- (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)))
+ (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)))
return (error);
numdirpasses = 2;
nchstats.ncs_2passes++;
@@ -203,7 +203,7 @@ searchloop:
if (bp != NULL)
brelse(bp);
error =
- VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp);
+ UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp);
if (error)
return (error);
entryoffsetinblock = 0;
@@ -715,7 +715,7 @@ ufs_direnter2(dvp, dirp, cr, p)
/*
* Get the block containing the space for the new directory entry.
*/
- error = VOP_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp);
+ error = UFS_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp);
if (error)
return (error);
/*
@@ -770,7 +770,7 @@ ufs_direnter2(dvp, dirp, cr, p)
}
dp->i_flag |= IN_CHANGE | IN_UPDATE;
if (!error && dp->i_endoff && dp->i_endoff < dp->i_size)
- error = VOP_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr, p);
+ error = UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr, p);
return (error);
}
@@ -803,7 +803,7 @@ ufs_dirremove(dvp, cnp)
* Whiteout entry: set d_ino to WINO.
*/
if (error =
- VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp))
+ UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp))
return (error);
ep->d_ino = WINO;
ep->d_type = DT_WHT;
@@ -817,7 +817,7 @@ ufs_dirremove(dvp, cnp)
* First entry in block: set d_ino to zero.
*/
error =
- VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp);
+ UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp);
if (error)
return (error);
ep->d_ino = 0;
@@ -828,7 +828,7 @@ ufs_dirremove(dvp, cnp)
/*
* Collapse new free space into previous entry.
*/
- error = VOP_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count),
+ error = UFS_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count),
(char **)&ep, &bp);
if (error)
return (error);
@@ -858,7 +858,7 @@ ufs_dirrewrite(dp, ip, cnp)
struct vnode *vdp = ITOV(dp);
int error;
- error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp);
+ error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp);
if (error)
return (error);
ep->d_ino = ip->i_number;
diff --git a/sys/ufs/ufs/ufs_readwrite.c b/sys/ufs/ufs/ufs_readwrite.c
index 929a289..afbe95f 100644
--- a/sys/ufs/ufs/ufs_readwrite.c
+++ b/sys/ufs/ufs/ufs_readwrite.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_readwrite.c 8.11 (Berkeley) 5/8/95
- * $Id: ufs_readwrite.c,v 1.30 1997/08/25 08:18:39 kato Exp $
+ * $Id: ufs_readwrite.c,v 1.31 1997/09/27 13:40:20 kato Exp $
*/
#ifdef LFS_READWRITE
@@ -305,7 +305,7 @@ WRITE(ap)
ip->i_mode &= ~(ISUID | ISGID);
if (error) {
if (ioflag & IO_UNIT) {
- (void)VOP_TRUNCATE(vp, osize,
+ (void)UFS_TRUNCATE(vp, osize,
ioflag & IO_SYNC, ap->a_cred, uio->uio_procp);
uio->uio_offset -= resid - uio->uio_resid;
uio->uio_resid = resid;
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 89166b3..1e67920 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
- * $Id: ufs_vnops.c,v 1.58 1997/09/21 04:24:14 dyson Exp $
+ * $Id: ufs_vnops.c,v 1.59 1997/10/15 13:24:07 phk Exp $
*/
#include "opt_quota.h"
@@ -415,7 +415,7 @@ ufs_setattr(ap)
return (EROFS);
break;
}
- if (error = VOP_TRUNCATE(vp, vap->va_size, 0, cred, p))
+ if (error = UFS_TRUNCATE(vp, vap->va_size, 0, cred, p))
return (error);
}
ip = VTOI(vp);
@@ -1156,7 +1156,7 @@ abortit:
if (doingdirectory) {
if (--xp->i_nlink != 0)
panic("ufs_rename: linked directory");
- error = VOP_TRUNCATE(tvp, (off_t)0, IO_SYNC,
+ error = UFS_TRUNCATE(tvp, (off_t)0, IO_SYNC,
tcnp->cn_cred, tcnp->cn_proc);
}
xp->i_flag |= IN_CHANGE;
@@ -1334,7 +1334,7 @@ ufs_mkdir(ap)
* but not have it entered in the parent directory. The entry is
* made later after writing "." and ".." entries.
*/
- error = VOP_VALLOC(dvp, dmode, cnp->cn_cred, &tvp);
+ error = UFS_VALLOC(dvp, dmode, cnp->cn_cred, &tvp);
if (error)
goto out;
ip = VTOI(tvp);
@@ -1344,7 +1344,7 @@ ufs_mkdir(ap)
if ((error = getinoquota(ip)) ||
(error = chkiq(ip, 1, cnp->cn_cred, 0))) {
zfree(namei_zone, cnp->cn_pnbuf);
- VOP_VFREE(tvp, ip->i_number, dmode);
+ UFS_VFREE(tvp, ip->i_number, dmode);
vput(tvp);
vput(dvp);
return (error);
@@ -1520,7 +1520,7 @@ ufs_rmdir(ap)
* worry about them later.
*/
ip->i_nlink -= 2;
- error = VOP_TRUNCATE(vp, (off_t)0, IO_SYNC, cnp->cn_cred,
+ error = UFS_TRUNCATE(vp, (off_t)0, IO_SYNC, cnp->cn_cred,
cnp->cn_proc);
cache_purge(ITOV(ip));
out:
@@ -2092,7 +2092,7 @@ ufs_makeinode(mode, dvp, vpp, cnp)
if ((mode & IFMT) == 0)
mode |= IFREG;
- error = VOP_VALLOC(dvp, mode, cnp->cn_cred, &tvp);
+ error = UFS_VALLOC(dvp, mode, cnp->cn_cred, &tvp);
if (error) {
zfree(namei_zone, cnp->cn_pnbuf);
vput(dvp);
@@ -2105,7 +2105,7 @@ ufs_makeinode(mode, dvp, vpp, cnp)
if ((error = getinoquota(ip)) ||
(error = chkiq(ip, 1, cnp->cn_cred, 0))) {
zfree(namei_zone, cnp->cn_pnbuf);
- VOP_VFREE(tvp, ip->i_number, mode);
+ UFS_VFREE(tvp, ip->i_number, mode);
vput(tvp);
vput(dvp);
return (error);
@@ -2174,23 +2174,16 @@ ufs_missingop(ap)
vop_t **ufs_vnodeop_p;
static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) vn_default_error },
-
- { &vop_blkatoff_desc, (vop_t *) ufs_missingop },
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
{ &vop_getpages_desc, (vop_t *) ufs_missingop },
{ &vop_read_desc, (vop_t *) ufs_missingop },
{ &vop_reallocblks_desc, (vop_t *) ufs_missingop },
- { &vop_truncate_desc, (vop_t *) ufs_missingop },
{ &vop_update_desc, (vop_t *) ufs_missingop },
- { &vop_valloc_desc, (vop_t *) ufs_missingop },
- { &vop_vfree_desc, (vop_t *) ufs_missingop },
{ &vop_write_desc, (vop_t *) ufs_missingop },
-
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
{ &vop_access_desc, (vop_t *) ufs_access },
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_cachedlookup_desc, (vop_t *) ufs_lookup },
{ &vop_close_desc, (vop_t *) ufs_close },
{ &vop_create_desc, (vop_t *) ufs_create },
@@ -2198,7 +2191,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) ufs_lease_check },
{ &vop_link_desc, (vop_t *) ufs_link },
{ &vop_lock_desc, (vop_t *) ufs_lock },
{ &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
@@ -2207,14 +2199,12 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
{ &vop_open_desc, (vop_t *) ufs_open },
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
- { &vop_poll_desc, (vop_t *) ufs_poll },
{ &vop_print_desc, (vop_t *) ufs_print },
{ &vop_readdir_desc, (vop_t *) ufs_readdir },
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
{ &vop_remove_desc, (vop_t *) ufs_remove },
{ &vop_rename_desc, (vop_t *) ufs_rename },
- { &vop_revoke_desc, (vop_t *) ufs_revoke },
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
{ &vop_seek_desc, (vop_t *) ufs_seek },
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
@@ -2230,13 +2220,9 @@ static struct vnodeopv_desc ufs_vnodeop_opv_desc =
vop_t **ufs_specop_p;
static struct vnodeopv_entry_desc ufs_specop_entries[] = {
{ &vop_default_desc, (vop_t *) spec_vnoperate },
-
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
{ &vop_update_desc, (vop_t *) ufs_missingop },
- { &vop_vfree_desc, (vop_t *) ufs_missingop },
-
{ &vop_access_desc, (vop_t *) ufs_access },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) ufsspec_close },
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
@@ -2256,13 +2242,9 @@ static struct vnodeopv_desc ufs_specop_opv_desc =
vop_t **ufs_fifoop_p;
static struct vnodeopv_entry_desc ufs_fifoop_entries[] = {
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
-
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
{ &vop_update_desc, (vop_t *) ufs_missingop },
- { &vop_vfree_desc, (vop_t *) ufs_missingop },
-
{ &vop_access_desc, (vop_t *) ufs_access },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) ufsfifo_close },
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h
index d57dd59..50bfe57 100644
--- a/sys/ufs/ufs/ufsmount.h
+++ b/sys/ufs/ufs/ufsmount.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufsmount.h 8.6 (Berkeley) 3/30/95
- * $Id: ufsmount.h,v 1.9 1997/10/10 18:18:13 phk Exp $
+ * $Id: ufsmount.h,v 1.10 1997/10/12 20:26:28 phk Exp $
*/
#ifndef _UFS_UFS_UFSMOUNT_H_
@@ -97,8 +97,17 @@ struct ufsmount {
struct netexport um_export; /* export information */
int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */
struct malloc_type *um_malloctype; /* The inodes malloctype */
+ int (*um_blkatoff) __P((struct vnode *, off_t, char **, struct buf **));
+ int (*um_truncate) __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
+ int (*um_valloc) __P((struct vnode *, int, struct ucred *, struct vnode **));
+ int (*um_vfree) __P((struct vnode *, ino_t, int));
};
+#define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd)
+#define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee)
+#define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd)
+#define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc)
+
/*
* Flags describing the state of quotas.
*/
OpenPOWER on IntegriCloud