summaryrefslogtreecommitdiff
path: root/sys/ntfs
diff options
context:
space:
mode:
authorThordur I. Bjornsson <thib@cvs.openbsd.org>2010-12-21 20:14:45 +0000
committerThordur I. Bjornsson <thib@cvs.openbsd.org>2010-12-21 20:14:45 +0000
commit533610cd3b12c41762f0fbaa058c868cc1458b45 (patch)
tree866b788e63499fb184820ccec149d0e2c6d410bb /sys/ntfs
parentb8f93236e139a325a6aec2b47b12ecbfab8aaf99 (diff)
Bring back the "End the VOP experiment." diff, naddy's issues where
unrelated, and his alpha is much happier now. OK deraadt@
Diffstat (limited to 'sys/ntfs')
-rw-r--r--sys/ntfs/ntfs.h6
-rw-r--r--sys/ntfs/ntfs_vfsops.c11
-rw-r--r--sys/ntfs/ntfs_vnops.c152
3 files changed, 68 insertions, 101 deletions
diff --git a/sys/ntfs/ntfs.h b/sys/ntfs/ntfs.h
index b84aea76517..8220e750d39 100644
--- a/sys/ntfs/ntfs.h
+++ b/sys/ntfs/ntfs.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ntfs.h,v 1.11 2010/09/10 16:34:09 thib Exp $ */
+/* $OpenBSD: ntfs.h,v 1.12 2010/12/21 20:14:43 thib Exp $ */
/* $NetBSD: ntfs.h,v 1.5 2003/04/24 07:50:19 christos Exp $ */
/*-
@@ -282,8 +282,6 @@ struct ntfsmount {
#define ntfs_btocnoff(off) (off_t)((off) % ((ntmp)->ntm_spc * (ntmp)->ntm_bps))
#define ntfs_bntob(bn) (int32_t)((bn) * (ntmp)->ntm_bps)
-typedef int (vop_t)(void *);
-
#if defined(NTFS_DEBUG)
extern int ntfs_debug;
#define DPRINTF(X, Y) do { if(ntfs_debug >= (X)) printf Y; } while(0)
@@ -295,4 +293,4 @@ extern int ntfs_debug;
#define ddprintf(a)
#endif
-extern vop_t **ntfs_vnodeop_p;
+extern struct vops ntfs_vops;
diff --git a/sys/ntfs/ntfs_vfsops.c b/sys/ntfs/ntfs_vfsops.c
index e6fc2ebfdf9..dcb41b4d63b 100644
--- a/sys/ntfs/ntfs_vfsops.c
+++ b/sys/ntfs/ntfs_vfsops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ntfs_vfsops.c,v 1.23 2010/09/10 16:34:09 thib Exp $ */
+/* $OpenBSD: ntfs_vfsops.c,v 1.24 2010/12/21 20:14:43 thib Exp $ */
/* $NetBSD: ntfs_vfsops.c,v 1.7 2003/04/24 07:50:19 christos Exp $ */
/*-
@@ -831,7 +831,7 @@ ntfs_vgetex(
}
}
- error = getnewvnode(VT_NTFS, ntmp->ntm_mountp, ntfs_vnodeop_p, &vp);
+ error = getnewvnode(VT_NTFS, ntmp->ntm_mountp, &ntfs_vops, &vp);
if(error) {
ntfs_frele(fp);
ntfs_ntput(ip, p);
@@ -869,13 +869,6 @@ ntfs_vget(
LK_EXCLUSIVE | LK_RETRY, 0, curproc, vpp); /* XXX */
}
-extern const struct vnodeopv_desc ntfs_vnodeop_opv_desc;
-
-const struct vnodeopv_desc * const ntfs_vnodeopv_descs[] = {
- &ntfs_vnodeop_opv_desc,
- NULL,
-};
-
const struct vfsops ntfs_vfsops = {
ntfs_mount,
ntfs_start,
diff --git a/sys/ntfs/ntfs_vnops.c b/sys/ntfs/ntfs_vnops.c
index fd719230bd3..94afc01488a 100644
--- a/sys/ntfs/ntfs_vnops.c
+++ b/sys/ntfs/ntfs_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ntfs_vnops.c,v 1.21 2010/11/18 21:18:07 miod Exp $ */
+/* $OpenBSD: ntfs_vnops.c,v 1.22 2010/12/21 20:14:43 thib Exp $ */
/* $NetBSD: ntfs_vnops.c,v 1.6 2003/04/10 21:57:26 jdolecek Exp $ */
/*
@@ -57,21 +57,20 @@
#include <sys/unistd.h> /* for pathconf(2) constants */
-static int ntfs_bypass(struct vop_generic_args *ap);
-static int ntfs_read(struct vop_read_args *);
-static int ntfs_write(struct vop_write_args *ap);
-static int ntfs_getattr(struct vop_getattr_args *ap);
-static int ntfs_inactive(struct vop_inactive_args *ap);
-static int ntfs_print(struct vop_print_args *ap);
-static int ntfs_reclaim(struct vop_reclaim_args *ap);
-static int ntfs_strategy(struct vop_strategy_args *ap);
-static int ntfs_access(struct vop_access_args *ap);
-static int ntfs_open(struct vop_open_args *ap);
-static int ntfs_close(struct vop_close_args *ap);
-static int ntfs_readdir(struct vop_readdir_args *ap);
-static int ntfs_lookup(struct vop_lookup_args *ap);
-static int ntfs_bmap(struct vop_bmap_args *ap);
-static int ntfs_fsync(struct vop_fsync_args *ap);
+static int ntfs_read(void *);
+static int ntfs_write(void *);
+static int ntfs_getattr(void *);
+static int ntfs_inactive(void *);
+static int ntfs_print(void *);
+static int ntfs_reclaim(void *);
+static int ntfs_strategy(void *);
+static int ntfs_access(void *);
+static int ntfs_open(void *);
+static int ntfs_close(void *);
+static int ntfs_readdir(void *);
+static int ntfs_lookup(void *);
+static int ntfs_bmap(void *);
+static int ntfs_fsync(void *);
static int ntfs_pathconf(void *);
int ntfs_prtactive = 1; /* 1 => print out reclaim of active vnodes */
@@ -80,9 +79,9 @@ int ntfs_prtactive = 1; /* 1 => print out reclaim of active vnodes */
* This is a noop, simply returning what one has been given.
*/
int
-ntfs_bmap(ap)
- struct vop_bmap_args *ap;
+ntfs_bmap(void *v)
{
+ struct vop_bmap_args *ap = v;
dprintf(("ntfs_bmap: vn: %p, blk: %d\n", ap->a_vp,(u_int32_t)ap->a_bn));
if (ap->a_vpp != NULL)
*ap->a_vpp = ap->a_vp;
@@ -94,9 +93,9 @@ ntfs_bmap(ap)
}
static int
-ntfs_read(ap)
- struct vop_read_args *ap;
+ntfs_read(void *v)
{
+ struct vop_read_args *ap = v;
struct vnode *vp = ap->a_vp;
struct fnode *fp = VTOF(vp);
struct ntnode *ip = FTONT(fp);
@@ -131,19 +130,9 @@ ntfs_read(ap)
}
static int
-ntfs_bypass(ap)
- struct vop_generic_args *ap;
-{
- int error = ENOTTY;
- dprintf(("ntfs_bypass: %s\n", ap->a_desc->vdesc_name));
- return (error);
-}
-
-
-static int
-ntfs_getattr(ap)
- struct vop_getattr_args *ap;
+ntfs_getattr(void *v)
{
+ struct vop_getattr_args *ap = v;
struct vnode *vp = ap->a_vp;
struct fnode *fp = VTOF(vp);
struct ntnode *ip = FTONT(fp);
@@ -176,9 +165,9 @@ ntfs_getattr(ap)
* Last reference to an ntnode. If necessary, write or delete it.
*/
int
-ntfs_inactive(ap)
- struct vop_inactive_args *ap;
+ntfs_inactive(void *v)
{
+ struct vop_inactive_args *ap = v;
struct vnode *vp = ap->a_vp;
struct proc *p = ap->a_p;
#ifdef NTFS_DEBUG
@@ -204,9 +193,9 @@ ntfs_inactive(ap)
* Reclaim an fnode/ntnode so that it can be used for other purposes.
*/
int
-ntfs_reclaim(ap)
- struct vop_reclaim_args *ap;
+ntfs_reclaim(void *v)
{
+ struct vop_reclaim_args *ap = v;
struct vnode *vp = ap->a_vp;
struct fnode *fp = VTOF(vp);
struct ntnode *ip = FTONT(fp);
@@ -235,9 +224,9 @@ ntfs_reclaim(ap)
}
static int
-ntfs_print(ap)
- struct vop_print_args *ap;
+ntfs_print(void *v)
{
+ struct vop_print_args *ap = v;
struct ntnode *ip = VTONT(ap->a_vp);
printf("tag VT_NTFS, ino %u, flag %#x, usecount %d, nlink %ld\n",
@@ -251,9 +240,9 @@ ntfs_print(ap)
* then call the device strategy routine.
*/
int
-ntfs_strategy(ap)
- struct vop_strategy_args *ap;
+ntfs_strategy(void *v)
{
+ struct vop_strategy_args *ap = v;
struct buf *bp = ap->a_bp;
struct vnode *vp = bp->b_vp;
struct fnode *fp = VTOF(vp);
@@ -324,9 +313,9 @@ ntfs_strategy(ap)
}
static int
-ntfs_write(ap)
- struct vop_write_args *ap;
+ntfs_write(void *v)
{
+ struct vop_write_args *ap = v;
struct vnode *vp = ap->a_vp;
struct fnode *fp = VTOF(vp);
struct ntnode *ip = FTONT(fp);
@@ -359,9 +348,9 @@ ntfs_write(ap)
}
int
-ntfs_access(ap)
- struct vop_access_args *ap;
+ntfs_access(void *v)
{
+ struct vop_access_args *ap = v;
struct vnode *vp = ap->a_vp;
struct ntnode *ip = VTONT(vp);
struct ucred *cred = ap->a_cred;
@@ -433,10 +422,10 @@ ntfs_access(ap)
*/
/* ARGSUSED */
static int
-ntfs_open(ap)
- struct vop_open_args *ap;
+ntfs_open(void *v)
{
#if NTFS_DEBUG
+ struct vop_open_args *ap = v;
struct vnode *vp = ap->a_vp;
struct ntnode *ip = VTONT(vp);
@@ -457,10 +446,10 @@ ntfs_open(ap)
*/
/* ARGSUSED */
static int
-ntfs_close(ap)
- struct vop_close_args *ap;
+ntfs_close(void *v)
{
#if NTFS_DEBUG
+ struct vop_close_args *ap = v;
struct vnode *vp = ap->a_vp;
struct ntnode *ip = VTONT(vp);
@@ -471,9 +460,9 @@ ntfs_close(ap)
}
int
-ntfs_readdir(ap)
- struct vop_readdir_args *ap;
+ntfs_readdir(void *v)
{
+ struct vop_readdir_args *ap = v;
struct vnode *vp = ap->a_vp;
struct fnode *fp = VTOF(vp);
struct ntnode *ip = FTONT(fp);
@@ -607,9 +596,9 @@ ntfs_readdir(ap)
}
int
-ntfs_lookup(ap)
- struct vop_lookup_args *ap;
+ntfs_lookup(void *v)
{
+ struct vop_lookup_args *ap = v;
struct vnode *dvp = ap->a_dvp;
struct ntnode *dip = VTONT(dvp);
struct ntfsmount *ntmp = dip->i_mp;
@@ -713,8 +702,7 @@ ntfs_lookup(ap)
* could just do a sync if they try an fsync on a directory file.
*/
static int
-ntfs_fsync(ap)
- struct vop_fsync_args *ap;
+ntfs_fsync(void *v)
{
return (0);
}
@@ -723,8 +711,7 @@ ntfs_fsync(ap)
* Return POSIX pathconf information applicable to NTFS filesystem
*/
static int
-ntfs_pathconf(v)
- void *v;
+ntfs_pathconf(void *v)
{
struct vop_pathconf_args *ap = v;
@@ -753,36 +740,25 @@ ntfs_pathconf(v)
/*
* Global vfs data structures
*/
-vop_t **ntfs_vnodeop_p;
-static
-struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *)ntfs_bypass },
-
- { &vop_getattr_desc, (vop_t *)ntfs_getattr },
- { &vop_inactive_desc, (vop_t *)ntfs_inactive },
- { &vop_reclaim_desc, (vop_t *)ntfs_reclaim },
- { &vop_print_desc, (vop_t *)ntfs_print },
- { &vop_pathconf_desc, ntfs_pathconf },
-
- { &vop_islocked_desc, (vop_t *)vop_generic_islocked },
- { &vop_unlock_desc, (vop_t *)vop_generic_unlock },
- { &vop_lock_desc, (vop_t *)vop_generic_lock },
- { &vop_lookup_desc, (vop_t *)ntfs_lookup },
-
- { &vop_access_desc, (vop_t *)ntfs_access },
- { &vop_close_desc, (vop_t *)ntfs_close },
- { &vop_open_desc, (vop_t *)ntfs_open },
- { &vop_readdir_desc, (vop_t *)ntfs_readdir },
- { &vop_fsync_desc, (vop_t *)ntfs_fsync },
-
- { &vop_bmap_desc, (vop_t *)ntfs_bmap },
- { &vop_strategy_desc, (vop_t *)ntfs_strategy },
- { &vop_bwrite_desc, (vop_t *)vop_generic_bwrite },
- { &vop_read_desc, (vop_t *)ntfs_read },
- { &vop_write_desc, (vop_t *)ntfs_write },
-
- { NULL, NULL }
+struct vops ntfs_vops = {
+ .vop_default = eopnotsupp,
+ .vop_getattr = ntfs_getattr,
+ .vop_inactive = ntfs_inactive,
+ .vop_reclaim = ntfs_reclaim,
+ .vop_print = ntfs_print,
+ .vop_pathconf = ntfs_pathconf,
+ .vop_islocked = vop_generic_islocked,
+ .vop_unlock = vop_generic_unlock,
+ .vop_lock = vop_generic_lock,
+ .vop_lookup = ntfs_lookup,
+ .vop_access = ntfs_access,
+ .vop_close = ntfs_close,
+ .vop_open = ntfs_open,
+ .vop_readdir = ntfs_readdir,
+ .vop_fsync = ntfs_fsync,
+ .vop_bmap = ntfs_bmap,
+ .vop_strategy = ntfs_strategy,
+ .vop_bwrite = vop_generic_bwrite,
+ .vop_read = ntfs_read,
+ .vop_write = ntfs_write,
};
-
-const struct vnodeopv_desc ntfs_vnodeop_opv_desc =
- { &ntfs_vnodeop_p, ntfs_vnodeop_entries };