diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-12-10 04:45:33 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-12-10 04:45:33 +0000 |
commit | 1eef7286fcf85dd357190316b332838378170946 (patch) | |
tree | 5d07152a5670a8b50e09c86d0ca76970e76c6fc0 /sys/msdosfs | |
parent | c7c6e636a8bfbf2c68e2ed3e6d20fa1c5237bfb0 (diff) |
Big cleanup inspired by NetBSD with some parts of the code from NetBSD.
- get rid of VOP_BALLOCN and VOP_SIZE
- move the generic getpages and putpages into miscfs/genfs
- create a genfs_node which must be added to the top of the private portion
of each vnode for filsystems that want to use genfs_{get,put}pages
- rename genfs_mmap to vop_generic_mmap
Diffstat (limited to 'sys/msdosfs')
-rw-r--r-- | sys/msdosfs/denode.h | 6 | ||||
-rw-r--r-- | sys/msdosfs/msdosfs_denode.c | 15 | ||||
-rw-r--r-- | sys/msdosfs/msdosfs_vnops.c | 5 |
3 files changed, 21 insertions, 5 deletions
diff --git a/sys/msdosfs/denode.h b/sys/msdosfs/denode.h index 665c74d2fd3..db945e35bcd 100644 --- a/sys/msdosfs/denode.h +++ b/sys/msdosfs/denode.h @@ -1,4 +1,4 @@ -/* $OpenBSD: denode.h,v 1.10 2001/06/23 02:15:24 csapuntz Exp $ */ +/* $OpenBSD: denode.h,v 1.11 2001/12/10 04:45:31 art Exp $ */ /* $NetBSD: denode.h,v 1.24 1997/10/17 11:23:39 ws Exp $ */ /*- @@ -91,6 +91,8 @@ * things. */ +#include <miscfs/genfs/genfs.h> + /* * Internal pseudo-offset for (nonexistent) directory entry for the root * dir in the root dir @@ -135,6 +137,7 @@ struct fatcache { * contained within a vnode. */ struct denode { + struct genfs_node de_gnode; struct denode *de_next; /* Hash chain forward */ struct denode **de_prev; /* Hash chain back */ struct vnode *de_vnode; /* addr of vnode we are part of */ @@ -311,4 +314,5 @@ void reinsert __P((struct denode *)); int removede __P((struct denode *, struct denode *)); int uniqdosname __P((struct denode *, struct componentname *, u_char *)); int findwin95 __P((struct denode *)); +int msdosfs_gop_alloc __P((struct vnode *, off_t, off_t, int, struct ucred *)); #endif /* _KERNEL */ diff --git a/sys/msdosfs/msdosfs_denode.c b/sys/msdosfs/msdosfs_denode.c index 601ac17df6b..e01491efc85 100644 --- a/sys/msdosfs/msdosfs_denode.c +++ b/sys/msdosfs/msdosfs_denode.c @@ -1,4 +1,4 @@ -/* $OpenBSD: msdosfs_denode.c,v 1.21 2001/12/10 02:19:34 art Exp $ */ +/* $OpenBSD: msdosfs_denode.c,v 1.22 2001/12/10 04:45:31 art Exp $ */ /* $NetBSD: msdosfs_denode.c,v 1.23 1997/10/17 11:23:58 ws Exp $ */ /*- @@ -74,6 +74,11 @@ u_long dehash; /* size of hash table - 1 */ extern int prtactive; +struct genfs_ops msdosfs_genfsops = { + genfs_size, + msdosfs_gop_alloc, +}; + static struct denode *msdosfs_hashget __P((dev_t, u_long, u_long)); static int msdosfs_hashins __P((struct denode *)); static void msdosfs_hashrem __P((struct denode *)); @@ -332,6 +337,7 @@ retry: } } else nvp->v_type = VREG; + genfs_node_init(nvp, &msdosfs_genfsops); VREF(ldep->de_devvp); *depp = ldep; nvp->v_size = ldep->de_FileSize; @@ -687,3 +693,10 @@ out: vrecycle(vp, (struct simplelock *)0, p); return (error); } + +int +msdosfs_gop_alloc(struct vnode *vp, off_t off, off_t len, int flags, + struct ucred *cred) +{ + return 0; +} diff --git a/sys/msdosfs/msdosfs_vnops.c b/sys/msdosfs/msdosfs_vnops.c index 91b3196ced1..8d08da9e229 100644 --- a/sys/msdosfs/msdosfs_vnops.c +++ b/sys/msdosfs/msdosfs_vnops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: msdosfs_vnops.c,v 1.33 2001/12/10 02:19:34 art Exp $ */ +/* $OpenBSD: msdosfs_vnops.c,v 1.34 2001/12/10 04:45:31 art Exp $ */ /* $NetBSD: msdosfs_vnops.c,v 1.63 1997/10/17 11:24:19 ws Exp $ */ /*- @@ -1878,8 +1878,7 @@ struct vnodeopv_entry_desc msdosfs_vnodeop_entries[] = { { &vop_bwrite_desc, vop_generic_bwrite }, /* bwrite */ { &vop_getpages_desc, genfs_getpages }, { &vop_putpages_desc, genfs_putpages }, - { &vop_size_desc, genfs_size }, - { &vop_mmap_desc, genfs_mmap }, + { &vop_mmap_desc, vop_generic_mmap }, { NULL, NULL } }; struct vnodeopv_desc msdosfs_vnodeop_opv_desc = |