summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTed Unangst <tedu@cvs.openbsd.org>2004-03-02 05:46:02 +0000
committerTed Unangst <tedu@cvs.openbsd.org>2004-03-02 05:46:02 +0000
commitcdcf0a329f83b6f31d60944308c25553bbfe457d (patch)
tree26eb69d4536dbe9b59152e0b5632ba907083fc87 /sys
parent1150c166ca7098458f6f565544bd7647c9388036 (diff)
silly fifos aren't a real fs, so we have to be sure to call reclaim
in the host fs.
Diffstat (limited to 'sys')
-rw-r--r--sys/nfs/nfs_vnops.c11
-rw-r--r--sys/nfs/nfsnode.h3
-rw-r--r--sys/ufs/ffs/ffs_extern.h3
-rw-r--r--sys/ufs/ffs/ffs_vnops.c13
4 files changed, 24 insertions, 6 deletions
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c
index 3b8f276db76..ad163a83a4f 100644
--- a/sys/nfs/nfs_vnops.c
+++ b/sys/nfs/nfs_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nfs_vnops.c,v 1.57 2004/02/27 17:40:17 millert Exp $ */
+/* $OpenBSD: nfs_vnops.c,v 1.58 2004/03/02 05:46:00 tedu Exp $ */
/* $NetBSD: nfs_vnops.c,v 1.62.4.1 1996/07/08 20:26:52 jtc Exp $ */
/*
@@ -163,7 +163,7 @@ struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
{ &vop_write_desc, nfsfifo_write }, /* write */
{ &vop_fsync_desc, nfs_fsync }, /* fsync */
{ &vop_inactive_desc, nfs_inactive }, /* inactive */
- { &vop_reclaim_desc, nfs_reclaim }, /* reclaim */
+ { &vop_reclaim_desc, nfsfifo_reclaim }, /* reclaim */
{ &vop_lock_desc, nfs_lock }, /* lock */
{ &vop_unlock_desc, nfs_unlock }, /* unlock */
{ &vop_print_desc, nfs_print }, /* print */
@@ -3239,4 +3239,11 @@ nfsfifo_close(v)
}
return (VOCALL(fifo_vnodeop_p, VOFFSET(vop_close), ap));
}
+
+int
+nfsfifo_reclaim(void *v)
+{
+ fifo_reclaim(v);
+ return (nfs_reclaim(v));
+}
#endif /* ! FIFO */
diff --git a/sys/nfs/nfsnode.h b/sys/nfs/nfsnode.h
index 453c62b3582..30696a71d5d 100644
--- a/sys/nfs/nfsnode.h
+++ b/sys/nfs/nfsnode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: nfsnode.h,v 1.19 2003/09/23 16:51:13 millert Exp $ */
+/* $OpenBSD: nfsnode.h,v 1.20 2004/03/02 05:46:00 tedu Exp $ */
/* $NetBSD: nfsnode.h,v 1.16 1996/02/18 11:54:04 fvdl Exp $ */
/*
@@ -183,6 +183,7 @@ int nfs_readdir(void *);
int nfs_readlink(void *);
int nfs_inactive(void *);
int nfs_reclaim(void *);
+int nfsfifo_reclaim(void *);
#define nfs_lock ((int (*)(void *))vop_generic_lock)
#define nfs_unlock ((int (*)(void *))vop_generic_unlock)
#define nfs_islocked ((int (*)(void *))vop_generic_islocked)
diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h
index 1eb46553dad..b31d6c91c9b 100644
--- a/sys/ufs/ffs/ffs_extern.h
+++ b/sys/ufs/ffs/ffs_extern.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_extern.h,v 1.22 2004/01/07 20:47:47 tedu Exp $ */
+/* $OpenBSD: ffs_extern.h,v 1.23 2004/03/02 05:46:01 tedu Exp $ */
/* $NetBSD: ffs_extern.h,v 1.4 1996/02/09 22:22:22 christos Exp $ */
/*-
@@ -154,6 +154,7 @@ int ffs_read(void *);
int ffs_write(void *);
int ffs_fsync(void *);
int ffs_reclaim(void *);
+int ffsfifo_reclaim(void *);
/*
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 5c41f97d070..e994cb68c74 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ffs_vnops.c,v 1.30 2003/09/23 16:51:13 millert Exp $ */
+/* $OpenBSD: ffs_vnops.c,v 1.31 2004/03/02 05:46:01 tedu Exp $ */
/* $NetBSD: ffs_vnops.c,v 1.7 1996/05/11 18:27:24 mycroft Exp $ */
/*
@@ -150,7 +150,7 @@ struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
{ &vop_write_desc, ufsfifo_write }, /* write */
{ &vop_fsync_desc, ffs_fsync }, /* fsync */
{ &vop_inactive_desc, ufs_inactive }, /* inactive */
- { &vop_reclaim_desc, ffs_reclaim }, /* reclaim */
+ { &vop_reclaim_desc, ffsfifo_reclaim }, /* reclaim */
{ &vop_lock_desc, ufs_lock }, /* lock */
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
{ &vop_print_desc, ufs_print }, /* print */
@@ -311,3 +311,12 @@ ffs_reclaim(v)
vp->v_data = NULL;
return (0);
}
+
+#ifdef FIFO
+int
+ffsfifo_reclaim(void *v)
+{
+ fifo_reclaim(v);
+ return (ffs_reclaim(v));
+}
+#endif