Module Name: src
Committed By: pooka
Date: Mon Mar 29 13:11:34 UTC 2010
Modified Files:
src/sys/fs/cd9660: cd9660_vnops.c
src/sys/fs/efs: efs_vnops.c
src/sys/fs/hfs: hfs_vnops.c
src/sys/fs/puffs: puffs_vnops.c
src/sys/fs/tmpfs: tmpfs_fifoops.h tmpfs_vnops.c
src/sys/kern: vfs_vnops.c
src/sys/miscfs/fifofs: fifo.h fifo_vnops.c
src/sys/nfs: nfs_vnops.c
src/sys/sys: vnode.h
src/sys/ufs/ext2fs: ext2fs_vnops.c
src/sys/ufs/ffs: ffs_vnops.c
src/sys/ufs/lfs: lfs_vnops.c
src/sys/ufs/ufs: ufs_vnops.c
Log Message:
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/fs/cd9660/cd9660_vnops.c
cvs rdiff -u -r1.20 -r1.21 src/sys/fs/efs/efs_vnops.c
cvs rdiff -u -r1.16 -r1.17 src/sys/fs/hfs/hfs_vnops.c
cvs rdiff -u -r1.143 -r1.144 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -u -r1.6 -r1.7 src/sys/fs/tmpfs/tmpfs_fifoops.h
cvs rdiff -u -r1.67 -r1.68 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.169 -r1.170 src/sys/kern/vfs_vnops.c
cvs rdiff -u -r1.25 -r1.26 src/sys/miscfs/fifofs/fifo.h
cvs rdiff -u -r1.67 -r1.68 src/sys/miscfs/fifofs/fifo_vnops.c
cvs rdiff -u -r1.282 -r1.283 src/sys/nfs/nfs_vnops.c
cvs rdiff -u -r1.214 -r1.215 src/sys/sys/vnode.h
cvs rdiff -u -r1.91 -r1.92 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -u -r1.113 -r1.114 src/sys/ufs/ffs/ffs_vnops.c
cvs rdiff -u -r1.226 -r1.227 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.180 -r1.181 src/sys/ufs/ufs/ufs_vnops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/fs/cd9660/cd9660_vnops.c
diff -u src/sys/fs/cd9660/cd9660_vnops.c:1.38 src/sys/fs/cd9660/cd9660_vnops.c:1.39
--- src/sys/fs/cd9660/cd9660_vnops.c:1.38 Fri Jul 3 21:17:40 2009
+++ src/sys/fs/cd9660/cd9660_vnops.c Mon Mar 29 13:11:32 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cd9660_vnops.c,v 1.38 2009/07/03 21:17:40 elad Exp $ */
+/* $NetBSD: cd9660_vnops.c,v 1.39 2010/03/29 13:11:32 pooka Exp $ */
/*-
* Copyright (c) 1994
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.38 2009/07/03 21:17:40 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.39 2010/03/29 13:11:32 pooka Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -948,45 +948,45 @@
int (**cd9660_fifoop_p)(void *);
const struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
- { &vop_close_desc, fifo_close }, /* close */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
+ { &vop_close_desc, vn_fifo_bypass }, /* close */
{ &vop_access_desc, cd9660_access }, /* access */
{ &vop_getattr_desc, cd9660_getattr }, /* getattr */
{ &vop_setattr_desc, cd9660_setattr }, /* setattr */
- { &vop_read_desc, fifo_read }, /* read */
- { &vop_write_desc, fifo_write }, /* write */
+ { &vop_read_desc, vn_fifo_bypass }, /* read */
+ { &vop_write_desc, vn_fifo_bypass }, /* write */
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
- { &vop_fsync_desc, fifo_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link } , /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
+ { &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass } , /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, cd9660_inactive }, /* inactive */
{ &vop_reclaim_desc, cd9660_reclaim }, /* reclaim */
{ &vop_lock_desc, genfs_lock }, /* lock */
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ &vop_print_desc, cd9660_print }, /* print */
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
{ NULL, NULL }
};
const struct vnodeopv_desc cd9660_fifoop_opv_desc =
Index: src/sys/fs/efs/efs_vnops.c
diff -u src/sys/fs/efs/efs_vnops.c:1.20 src/sys/fs/efs/efs_vnops.c:1.21
--- src/sys/fs/efs/efs_vnops.c:1.20 Fri Jul 3 22:25:51 2009
+++ src/sys/fs/efs/efs_vnops.c Mon Mar 29 13:11:32 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: efs_vnops.c,v 1.20 2009/07/03 22:25:51 pooka Exp $ */
+/* $NetBSD: efs_vnops.c,v 1.21 2010/03/29 13:11:32 pooka Exp $ */
/*
* Copyright (c) 2006 Stephen M. Rumble <[email protected]>
@@ -17,7 +17,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.20 2009/07/03 22:25:51 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.21 2010/03/29 13:11:32 pooka Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -910,42 +910,42 @@
int (**efs_fifoop_p)(void *);
const struct vnodeopv_entry_desc efs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error}, /* error handler */
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
- { &vop_close_desc, fifo_close }, /* close */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
+ { &vop_close_desc, vn_fifo_bypass }, /* close */
{ &vop_access_desc, efs_access }, /* access */
{ &vop_getattr_desc, efs_getattr }, /* getattr */
{ &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */
- { &vop_read_desc, fifo_read }, /* read */
- { &vop_write_desc, fifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_read_desc, vn_fifo_bypass }, /* read */
+ { &vop_write_desc, vn_fifo_bypass }, /* write */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
- { &vop_fsync_desc, fifo_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
+ { &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, efs_inactive }, /* inactive */
{ &vop_reclaim_desc, efs_reclaim }, /* reclaim */
{ &vop_lock_desc, genfs_lock, }, /* lock */
{ &vop_unlock_desc, genfs_unlock, }, /* unlock */
{ &vop_islocked_desc, genfs_islocked, }, /* islocked */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
{ &vop_print_desc, efs_print }, /* print */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
/* blkatoff */
/* valloc */
/* balloc */
@@ -953,7 +953,7 @@
/* truncate */
/* whiteout */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ NULL, NULL }
};
const struct vnodeopv_desc efs_fifoop_opv_desc = {
Index: src/sys/fs/hfs/hfs_vnops.c
diff -u src/sys/fs/hfs/hfs_vnops.c:1.16 src/sys/fs/hfs/hfs_vnops.c:1.17
--- src/sys/fs/hfs/hfs_vnops.c:1.16 Fri Jan 8 11:35:08 2010
+++ src/sys/fs/hfs/hfs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: hfs_vnops.c,v 1.16 2010/01/08 11:35:08 pooka Exp $ */
+/* $NetBSD: hfs_vnops.c,v 1.17 2010/03/29 13:11:33 pooka Exp $ */
/*-
* Copyright (c) 2005, 2007 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.16 2010/01/08 11:35:08 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.17 2010/03/29 13:11:33 pooka Exp $");
#ifdef _KERNEL_OPT
#include "opt_ipsec.h"
@@ -259,45 +259,45 @@
int (**hfs_fifoop_p) (void *);
const struct vnodeopv_entry_desc hfs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
- { &vop_close_desc, fifo_close }, /* close */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
+ { &vop_close_desc, vn_fifo_bypass }, /* close */
{ &vop_access_desc, hfs_vop_access }, /* access */
- { &vop_getattr_desc, hfs_vop_getattr }, /* getattr */
- { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */
- { &vop_read_desc, fifo_read }, /* read */
- { &vop_write_desc, fifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_getattr_desc, hfs_vop_getattr }, /* getattr */
+ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */
+ { &vop_read_desc, vn_fifo_bypass }, /* read */
+ { &vop_write_desc, vn_fifo_bypass }, /* write */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
- { &vop_fsync_desc, fifo_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
+ { &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, genfs_eopnotsupp }, /* inactive */
- { &vop_reclaim_desc, hfs_vop_reclaim }, /* reclaim */
+ { &vop_reclaim_desc, hfs_vop_reclaim }, /* reclaim */
{ &vop_lock_desc, genfs_lock }, /* lock */
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ &vop_print_desc, hfs_vop_print }, /* print */
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
#if 0
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.143 src/sys/fs/puffs/puffs_vnops.c:1.144
--- src/sys/fs/puffs/puffs_vnops.c:1.143 Sat Mar 27 02:37:35 2010
+++ src/sys/fs/puffs/puffs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vnops.c,v 1.143 2010/03/27 02:37:35 pooka Exp $ */
+/* $NetBSD: puffs_vnops.c,v 1.144 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.143 2010/03/27 02:37:35 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.144 2010/03/29 13:11:33 pooka Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -202,45 +202,45 @@
int (**puffs_fifoop_p)(void *);
const struct vnodeopv_entry_desc puffs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup, ENOTDIR */
- { &vop_create_desc, fifo_create }, /* genfs_badop */
- { &vop_mknod_desc, fifo_mknod }, /* genfs_badop */
- { &vop_open_desc, fifo_open }, /* open */
- { &vop_close_desc, fifo_close }, /* close */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup, ENOTDIR */
+ { &vop_create_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
+ { &vop_close_desc, vn_fifo_bypass }, /* close */
{ &vop_access_desc, puffs_vnop_checkop }, /* access */
{ &vop_getattr_desc, puffs_vnop_checkop }, /* getattr */
{ &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
{ &vop_read_desc, puffs_vnop_fifo_read }, /* read, update */
{ &vop_write_desc, puffs_vnop_fifo_write }, /* write, update */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, genfs_fcntl }, /* dummy */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* genfs_revoke */
- { &vop_mmap_desc, fifo_mmap }, /* genfs_badop */
- { &vop_fsync_desc, fifo_fsync }, /* genfs_nullop*/
- { &vop_seek_desc, fifo_seek }, /* genfs_badop */
- { &vop_remove_desc, fifo_remove }, /* genfs_badop */
- { &vop_link_desc, fifo_link }, /* genfs_badop */
- { &vop_rename_desc, fifo_rename }, /* genfs_badop */
- { &vop_mkdir_desc, fifo_mkdir }, /* genfs_badop */
- { &vop_rmdir_desc, fifo_rmdir }, /* genfs_badop */
- { &vop_symlink_desc, fifo_symlink }, /* genfs_badop */
- { &vop_readdir_desc, fifo_readdir }, /* genfs_badop */
- { &vop_readlink_desc, fifo_readlink }, /* genfs_badop */
- { &vop_abortop_desc, fifo_abortop }, /* genfs_badop */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* genfs_revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_fsync_desc, vn_fifo_bypass }, /* genfs_nullop*/
+ { &vop_seek_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_remove_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_link_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_rename_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* genfs_badop */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* genfs_badop */
{ &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
{ &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
{ &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */
{ &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */
- { &vop_bmap_desc, fifo_bmap }, /* dummy */
- { &vop_strategy_desc, fifo_strategy }, /* genfs_badop */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* dummy */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* genfs_badop */
{ &vop_print_desc, puffs_vnop_print }, /* REAL print */
{ &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* genfs_einval */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* genfs_einval */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* genfs_null_putpages*/
+ { &vop_putpages_desc, vn_fifo_bypass }, /* genfs_null_putpages*/
#if 0
{ &vop_openextattr_desc, _openextattr }, /* openextattr */
{ &vop_closeextattr_desc, _closeextattr }, /* closeextattr */
@@ -2055,10 +2055,10 @@
int error;
/* kernel portion */
- printf("tag VT_PUFFS, vnode %p, puffs node: %p"
- " userspace cookie: %p\n", vp, pn, pn->pn_cookie);
+ printf("tag VT_PUFFS, vnode %p, puffs node: %p,\n"
+ "\tuserspace cookie: %p", vp, pn, pn->pn_cookie);
if (vp->v_type == VFIFO)
- fifo_printinfo(vp);
+ VOCALL(fifo_vnodeop_p, VOFFSET(vop_print), v);
printf("\n");
/* userspace portion */
Index: src/sys/fs/tmpfs/tmpfs_fifoops.h
diff -u src/sys/fs/tmpfs/tmpfs_fifoops.h:1.6 src/sys/fs/tmpfs/tmpfs_fifoops.h:1.7
--- src/sys/fs/tmpfs/tmpfs_fifoops.h:1.6 Mon Apr 28 20:24:02 2008
+++ src/sys/fs/tmpfs/tmpfs_fifoops.h Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: tmpfs_fifoops.h,v 1.6 2008/04/28 20:24:02 martin Exp $ */
+/* $NetBSD: tmpfs_fifoops.h,v 1.7 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -48,10 +48,10 @@
extern int (**tmpfs_fifoop_p)(void *);
-#define tmpfs_fifo_lookup fifo_lookup
-#define tmpfs_fifo_create fifo_create
-#define tmpfs_fifo_mknod fifo_mknod
-#define tmpfs_fifo_open fifo_open
+#define tmpfs_fifo_lookup vn_fifo_bypass
+#define tmpfs_fifo_create vn_fifo_bypass
+#define tmpfs_fifo_mknod vn_fifo_bypass
+#define tmpfs_fifo_open vn_fifo_bypass
int tmpfs_fifo_close (void *);
#define tmpfs_fifo_access tmpfs_access
#define tmpfs_fifo_getattr tmpfs_getattr
@@ -59,35 +59,35 @@
int tmpfs_fifo_read (void *);
int tmpfs_fifo_write (void *);
#define tmpfs_fifo_fcntl tmpfs_fcntl
-#define tmpfs_fifo_ioctl fifo_ioctl
-#define tmpfs_fifo_poll fifo_poll
-#define tmpfs_fifo_kqfilter fifo_kqfilter
-#define tmpfs_fifo_revoke fifo_revoke
-#define tmpfs_fifo_mmap fifo_mmap
-#define tmpfs_fifo_fsync fifo_fsync
-#define tmpfs_fifo_seek fifo_seek
-#define tmpfs_fifo_remove fifo_remove
-#define tmpfs_fifo_link fifo_link
-#define tmpfs_fifo_rename fifo_rename
-#define tmpfs_fifo_mkdir fifo_mkdir
-#define tmpfs_fifo_rmdir fifo_rmdir
-#define tmpfs_fifo_symlink fifo_symlink
-#define tmpfs_fifo_readdir fifo_readdir
-#define tmpfs_fifo_readlink fifo_readlink
-#define tmpfs_fifo_abortop fifo_abortop
+#define tmpfs_fifo_ioctl vn_fifo_bypass
+#define tmpfs_fifo_poll vn_fifo_bypass
+#define tmpfs_fifo_kqfilter vn_fifo_bypass
+#define tmpfs_fifo_revoke vn_fifo_bypass
+#define tmpfs_fifo_mmap vn_fifo_bypass
+#define tmpfs_fifo_fsync vn_fifo_bypass
+#define tmpfs_fifo_seek vn_fifo_bypass
+#define tmpfs_fifo_remove vn_fifo_bypass
+#define tmpfs_fifo_link vn_fifo_bypass
+#define tmpfs_fifo_rename vn_fifo_bypass
+#define tmpfs_fifo_mkdir vn_fifo_bypass
+#define tmpfs_fifo_rmdir vn_fifo_bypass
+#define tmpfs_fifo_symlink vn_fifo_bypass
+#define tmpfs_fifo_readdir vn_fifo_bypass
+#define tmpfs_fifo_readlink vn_fifo_bypass
+#define tmpfs_fifo_abortop vn_fifo_bypass
#define tmpfs_fifo_inactive tmpfs_inactive
#define tmpfs_fifo_reclaim tmpfs_reclaim
#define tmpfs_fifo_lock tmpfs_lock
#define tmpfs_fifo_unlock tmpfs_unlock
-#define tmpfs_fifo_bmap fifo_bmap
-#define tmpfs_fifo_strategy fifo_strategy
+#define tmpfs_fifo_bmap vn_fifo_bypass
+#define tmpfs_fifo_strategy vn_fifo_bypass
#define tmpfs_fifo_print tmpfs_print
-#define tmpfs_fifo_pathconf fifo_pathconf
+#define tmpfs_fifo_pathconf vn_fifo_bypass
#define tmpfs_fifo_islocked tmpfs_islocked
-#define tmpfs_fifo_advlock fifo_advlock
+#define tmpfs_fifo_advlock vn_fifo_bypass
#define tmpfs_fifo_bwrite tmpfs_bwrite
#define tmpfs_fifo_getpages genfs_badop
-#define tmpfs_fifo_putpages fifo_putpages
+#define tmpfs_fifo_putpages vn_fifo_bypass
/* --------------------------------------------------------------------- */
#endif /* _FS_TMPFS_TMPFS_FIFOOPS_H_ */
Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.67 src/sys/fs/tmpfs/tmpfs_vnops.c:1.68
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.67 Sat Mar 27 02:37:34 2010
+++ src/sys/fs/tmpfs/tmpfs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: tmpfs_vnops.c,v 1.67 2010/03/27 02:37:34 pooka Exp $ */
+/* $NetBSD: tmpfs_vnops.c,v 1.68 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.67 2010/03/27 02:37:34 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.68 2010/03/29 13:11:33 pooka Exp $");
#include <sys/param.h>
#include <sys/dirent.h>
@@ -1340,7 +1340,7 @@
node->tn_mode, node->tn_uid, node->tn_gid,
(uintmax_t)node->tn_size, node->tn_status);
if (vp->v_type == VFIFO)
- fifo_printinfo(vp);
+ VOCALL(fifo_vnodeop_p, VOFFSET(vop_print), v);
printf("\n");
return 0;
Index: src/sys/kern/vfs_vnops.c
diff -u src/sys/kern/vfs_vnops.c:1.169 src/sys/kern/vfs_vnops.c:1.170
--- src/sys/kern/vfs_vnops.c:1.169 Fri Jan 8 11:35:10 2010
+++ src/sys/kern/vfs_vnops.c Mon Mar 29 13:11:32 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_vnops.c,v 1.169 2010/01/08 11:35:10 pooka Exp $ */
+/* $NetBSD: vfs_vnops.c,v 1.170 2010/03/29 13:11:32 pooka Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnops.c,v 1.169 2010/01/08 11:35:10 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnops.c,v 1.170 2010/03/29 13:11:32 pooka Exp $");
#include "veriexec.h"
@@ -91,6 +91,7 @@
#include <sys/wapbl.h>
#include <miscfs/specfs/specdev.h>
+#include <miscfs/fifofs/fifo.h>
#include <uvm/uvm_extern.h>
#include <uvm/uvm_readahead.h>
@@ -924,3 +925,11 @@
uvm_ra_freectx(ra);
}
}
+
+int
+vn_fifo_bypass(void *v)
+{
+ struct vop_generic_args *ap = v;
+
+ return VOCALL(fifo_vnodeop_p, ap->a_desc->vdesc_offset, v);
+}
Index: src/sys/miscfs/fifofs/fifo.h
diff -u src/sys/miscfs/fifofs/fifo.h:1.25 src/sys/miscfs/fifofs/fifo.h:1.26
--- src/sys/miscfs/fifofs/fifo.h:1.25 Fri Jan 25 14:32:15 2008
+++ src/sys/miscfs/fifofs/fifo.h Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fifo.h,v 1.25 2008/01/25 14:32:15 ad Exp $ */
+/* $NetBSD: fifo.h,v 1.26 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -31,48 +31,4 @@
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
*/
-/*
- * Prototypes for fifo operations on vnodes.
- */
-int fifo_lookup(void *);
-#define fifo_create genfs_badop
-#define fifo_mknod genfs_badop
-int fifo_open(void *);
-int fifo_close(void *);
-#define fifo_access genfs_ebadf
-#define fifo_getattr genfs_ebadf
-#define fifo_setattr genfs_ebadf
-int fifo_read(void *);
-int fifo_write(void *);
-int fifo_ioctl(void *);
-int fifo_poll(void *);
-int fifo_kqfilter(void *);
-#define fifo_revoke genfs_revoke
-#define fifo_mmap genfs_badop
-#define fifo_fsync genfs_nullop
-#define fifo_seek genfs_badop
-#define fifo_remove genfs_badop
-#define fifo_link genfs_badop
-#define fifo_rename genfs_badop
-#define fifo_mkdir genfs_badop
-#define fifo_rmdir genfs_badop
-#define fifo_symlink genfs_badop
-#define fifo_readdir genfs_badop
-#define fifo_readlink genfs_badop
-#define fifo_abortop genfs_badop
-#define fifo_reclaim genfs_nullop
-#define fifo_lock genfs_lock
-#define fifo_unlock genfs_unlock
-int fifo_inactive(void *);
-int fifo_bmap(void *);
-#define fifo_strategy genfs_badop
-int fifo_print(void *);
-#define fifo_islocked genfs_islocked
-int fifo_pathconf(void *);
-#define fifo_advlock genfs_einval
-#define fifo_bwrite genfs_nullop
-#define fifo_putpages genfs_null_putpages
-
-void fifo_printinfo(struct vnode *);
-
extern int (**fifo_vnodeop_p)(void *);
Index: src/sys/miscfs/fifofs/fifo_vnops.c
diff -u src/sys/miscfs/fifofs/fifo_vnops.c:1.67 src/sys/miscfs/fifofs/fifo_vnops.c:1.68
--- src/sys/miscfs/fifofs/fifo_vnops.c:1.67 Sat Mar 27 02:33:11 2010
+++ src/sys/miscfs/fifofs/fifo_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fifo_vnops.c,v 1.67 2010/03/27 02:33:11 pooka Exp $ */
+/* $NetBSD: fifo_vnops.c,v 1.68 2010/03/29 13:11:33 pooka Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.67 2010/03/27 02:33:11 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.68 2010/03/29 13:11:33 pooka Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -95,57 +95,11 @@
int fi_writers;
};
-int (**fifo_vnodeop_p)(void *);
-const struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
- { &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
- { &vop_close_desc, fifo_close }, /* close */
- { &vop_access_desc, fifo_access }, /* access */
- { &vop_getattr_desc, fifo_getattr }, /* getattr */
- { &vop_setattr_desc, fifo_setattr }, /* setattr */
- { &vop_read_desc, fifo_read }, /* read */
- { &vop_write_desc, fifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
- { &vop_fsync_desc, fifo_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
- { &vop_inactive_desc, fifo_inactive }, /* inactive */
- { &vop_reclaim_desc, fifo_reclaim }, /* reclaim */
- { &vop_lock_desc, fifo_lock }, /* lock */
- { &vop_unlock_desc, fifo_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
- { &vop_print_desc, fifo_print }, /* print */
- { &vop_islocked_desc, fifo_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
- { &vop_bwrite_desc, fifo_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
- { (struct vnodeop_desc*)NULL, (int(*)(void *))NULL }
-};
-const struct vnodeopv_desc fifo_vnodeop_opv_desc =
- { &fifo_vnodeop_p, fifo_vnodeop_entries };
-
/*
* Trivial lookup routine that always fails.
*/
/* ARGSUSED */
-int
+static int
fifo_lookup(void *v)
{
struct vop_lookup_args /* {
@@ -163,7 +117,7 @@
* to find an active instance of a fifo.
*/
/* ARGSUSED */
-int
+static int
fifo_open(void *v)
{
struct vop_open_args /* {
@@ -278,7 +232,7 @@
* Vnode op for read
*/
/* ARGSUSED */
-int
+static int
fifo_read(void *v)
{
struct vop_read_args /* {
@@ -326,7 +280,7 @@
* Vnode op for write
*/
/* ARGSUSED */
-int
+static int
fifo_write(void *v)
{
struct vop_write_args /* {
@@ -359,7 +313,7 @@
* Device ioctl operation.
*/
/* ARGSUSED */
-int
+static int
fifo_ioctl(void *v)
{
struct vop_ioctl_args /* {
@@ -391,7 +345,7 @@
}
/* ARGSUSED */
-int
+static int
fifo_poll(void *v)
{
struct vop_poll_args /* {
@@ -417,7 +371,7 @@
return (revents);
}
-int
+static int
fifo_inactive(void *v)
{
struct vop_inactive_args /* {
@@ -432,7 +386,7 @@
/*
* This is a noop, simply returning what one has been given.
*/
-int
+static int
fifo_bmap(void *v)
{
struct vop_bmap_args /* {
@@ -456,7 +410,7 @@
* Device close routine
*/
/* ARGSUSED */
-int
+static int
fifo_close(void *v)
{
struct vop_close_args /* {
@@ -505,39 +459,44 @@
}
/*
+ * Print out internal contents of a fifo vnode.
+ */
+static void
+fifo_printinfo(struct vnode *vp)
+{
+ struct fifoinfo *fip;
+
+ fip = vp->v_fifoinfo;
+ printf(", fifo with %d readers and %d writers",
+ fip->fi_readers, fip->fi_writers);
+}
+
+/*
* Print out the contents of a fifo vnode.
*/
-int
+static int
fifo_print(void *v)
{
struct vop_print_args /* {
struct vnode *a_vp;
} */ *ap = v;
- printf("tag VT_NON");
+ /*
+ * We are most likely being called with the vnode belonging
+ * to some file system and this is not printed.
+ */
+ if (ap->a_vp->v_tag == VT_NON)
+ printf("tag VT_NON");
+
fifo_printinfo(ap->a_vp);
printf("\n");
return 0;
}
/*
- * Print out internal contents of a fifo vnode.
- */
-void
-fifo_printinfo(struct vnode *vp)
-{
- struct fifoinfo *fip;
-
- if ((fip = vp->v_fifoinfo) != NULL) {
- printf(", fifo with %d readers and %d writers",
- fip->fi_readers, fip->fi_writers);
- }
-}
-
-/*
* Return POSIX pathconf information applicable to fifo's.
*/
-int
+static int
fifo_pathconf(void *v)
{
struct vop_pathconf_args /* {
@@ -641,7 +600,7 @@
{ 1, NULL, filt_fifowdetach, filt_fifowrite };
/* ARGSUSED */
-int
+static int
fifo_kqfilter(void *v)
{
struct vop_kqfilter_args /* {
@@ -674,3 +633,49 @@
return (0);
}
+
+int (**fifo_vnodeop_p)(void *);
+const struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
+ { &vop_default_desc, vn_default_error },
+ { &vop_lookup_desc, fifo_lookup }, /* lookup */
+ { &vop_create_desc, genfs_badop }, /* create */
+ { &vop_mknod_desc, genfs_badop }, /* mknod */
+ { &vop_open_desc, fifo_open }, /* open */
+ { &vop_close_desc, fifo_close }, /* close */
+ { &vop_access_desc, genfs_ebadf }, /* access */
+ { &vop_getattr_desc, genfs_ebadf }, /* getattr */
+ { &vop_setattr_desc, genfs_ebadf }, /* setattr */
+ { &vop_read_desc, fifo_read }, /* read */
+ { &vop_write_desc, fifo_write }, /* write */
+ { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_poll_desc, fifo_poll }, /* poll */
+ { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
+ { &vop_revoke_desc, genfs_revoke }, /* revoke */
+ { &vop_mmap_desc, genfs_badop }, /* mmap */
+ { &vop_fsync_desc, genfs_nullop }, /* fsync */
+ { &vop_seek_desc, genfs_badop }, /* seek */
+ { &vop_remove_desc, genfs_badop }, /* remove */
+ { &vop_link_desc, genfs_badop }, /* link */
+ { &vop_rename_desc, genfs_badop }, /* rename */
+ { &vop_mkdir_desc, genfs_badop }, /* mkdir */
+ { &vop_rmdir_desc, genfs_badop }, /* rmdir */
+ { &vop_symlink_desc, genfs_badop }, /* symlink */
+ { &vop_readdir_desc, genfs_badop }, /* readdir */
+ { &vop_readlink_desc, genfs_badop }, /* readlink */
+ { &vop_abortop_desc, genfs_badop }, /* abortop */
+ { &vop_inactive_desc, fifo_inactive }, /* inactive */
+ { &vop_reclaim_desc, genfs_nullop }, /* reclaim */
+ { &vop_lock_desc, genfs_lock }, /* lock */
+ { &vop_unlock_desc, genfs_unlock }, /* unlock */
+ { &vop_bmap_desc, fifo_bmap }, /* bmap */
+ { &vop_strategy_desc, genfs_badop }, /* strategy */
+ { &vop_print_desc, fifo_print }, /* print */
+ { &vop_islocked_desc, genfs_islocked }, /* islocked */
+ { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
+ { &vop_advlock_desc, genfs_einval }, /* advlock */
+ { &vop_bwrite_desc, genfs_nullop }, /* bwrite */
+ { &vop_putpages_desc, genfs_null_putpages }, /* putpages */
+ { (struct vnodeop_desc*)NULL, (int(*)(void *))NULL }
+};
+const struct vnodeopv_desc fifo_vnodeop_opv_desc =
+ { &fifo_vnodeop_p, fifo_vnodeop_entries };
Index: src/sys/nfs/nfs_vnops.c
diff -u src/sys/nfs/nfs_vnops.c:1.282 src/sys/nfs/nfs_vnops.c:1.283
--- src/sys/nfs/nfs_vnops.c:1.282 Fri Jan 8 11:35:11 2010
+++ src/sys/nfs/nfs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_vnops.c,v 1.282 2010/01/08 11:35:11 pooka Exp $ */
+/* $NetBSD: nfs_vnops.c,v 1.283 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.282 2010/01/08 11:35:11 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.283 2010/03/29 13:11:33 pooka Exp $");
#ifdef _KERNEL_OPT
#include "opt_nfs.h"
@@ -195,10 +195,10 @@
int (**fifo_nfsv2nodeop_p)(void *);
const struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
{ &vop_close_desc, nfsfifo_close }, /* close */
{ &vop_access_desc, nfsspec_access }, /* access */
{ &vop_getattr_desc, nfs_getattr }, /* getattr */
@@ -206,34 +206,34 @@
{ &vop_read_desc, nfsfifo_read }, /* read */
{ &vop_write_desc, nfsfifo_write }, /* write */
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
{ &vop_fsync_desc, nfs_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, nfs_inactive }, /* inactive */
{ &vop_reclaim_desc, nfs_reclaim }, /* reclaim */
{ &vop_lock_desc, nfs_lock }, /* lock */
{ &vop_unlock_desc, nfs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
{ &vop_strategy_desc, genfs_badop }, /* strategy */
{ &vop_print_desc, nfs_print }, /* print */
{ &vop_islocked_desc, nfs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, genfs_badop }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
{ NULL, NULL }
};
const struct vnodeopv_desc fifo_nfsv2nodeop_opv_desc =
@@ -3336,7 +3336,7 @@
(unsigned long long)np->n_vattr->va_fileid,
(unsigned long long)np->n_vattr->va_fsid);
if (vp->v_type == VFIFO)
- fifo_printinfo(vp);
+ VOCALL(fifo_vnodeop_p, VOFFSET(vop_print), v);
printf("\n");
return (0);
}
Index: src/sys/sys/vnode.h
diff -u src/sys/sys/vnode.h:1.214 src/sys/sys/vnode.h:1.215
--- src/sys/sys/vnode.h:1.214 Thu Feb 11 23:16:35 2010
+++ src/sys/sys/vnode.h Mon Mar 29 13:11:32 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: vnode.h,v 1.214 2010/02/11 23:16:35 haad Exp $ */
+/* $NetBSD: vnode.h,v 1.215 2010/03/29 13:11:32 pooka Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -643,6 +643,7 @@
const void *, struct lwp *);
int vn_extattr_rm(struct vnode *, int, int, const char *, struct lwp *);
void vn_ra_allocctx(struct vnode *);
+int vn_fifo_bypass(void *);
/* initialise global vnode management */
void vntblinit(void);
Index: src/sys/ufs/ext2fs/ext2fs_vnops.c
diff -u src/sys/ufs/ext2fs/ext2fs_vnops.c:1.91 src/sys/ufs/ext2fs/ext2fs_vnops.c:1.92
--- src/sys/ufs/ext2fs/ext2fs_vnops.c:1.91 Wed Oct 21 17:37:21 2009
+++ src/sys/ufs/ext2fs/ext2fs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: ext2fs_vnops.c,v 1.91 2009/10/21 17:37:21 pooka Exp $ */
+/* $NetBSD: ext2fs_vnops.c,v 1.92 2010/03/29 13:11:33 pooka Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -65,7 +65,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.91 2009/10/21 17:37:21 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.92 2010/03/29 13:11:33 pooka Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1612,45 +1612,45 @@
int (**ext2fs_fifoop_p)(void *);
const struct vnodeopv_entry_desc ext2fs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
{ &vop_close_desc, ufsfifo_close }, /* close */
{ &vop_access_desc, ext2fs_access }, /* access */
{ &vop_getattr_desc, ext2fs_getattr }, /* getattr */
{ &vop_setattr_desc, ext2fs_setattr }, /* setattr */
{ &vop_read_desc, ufsfifo_read }, /* read */
{ &vop_write_desc, ufsfifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
{ &vop_fsync_desc, ext2fs_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, ext2fs_inactive }, /* inactive */
{ &vop_reclaim_desc, ext2fs_reclaim }, /* reclaim */
{ &vop_lock_desc, ufs_lock }, /* lock */
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ &vop_print_desc, ufs_print }, /* print */
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
{ NULL, NULL }
};
const struct vnodeopv_desc ext2fs_fifoop_opv_desc =
Index: src/sys/ufs/ffs/ffs_vnops.c
diff -u src/sys/ufs/ffs/ffs_vnops.c:1.113 src/sys/ufs/ffs/ffs_vnops.c:1.114
--- src/sys/ufs/ffs/ffs_vnops.c:1.113 Wed Nov 4 09:45:05 2009
+++ src/sys/ufs/ffs/ffs_vnops.c Mon Mar 29 13:11:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_vnops.c,v 1.113 2009/11/04 09:45:05 hannken Exp $ */
+/* $NetBSD: ffs_vnops.c,v 1.114 2010/03/29 13:11:33 pooka Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vnops.c,v 1.113 2009/11/04 09:45:05 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vnops.c,v 1.114 2010/03/29 13:11:33 pooka Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -213,45 +213,45 @@
int (**ffs_fifoop_p)(void *);
const struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
{ &vop_close_desc, ufsfifo_close }, /* close */
{ &vop_access_desc, ufs_access }, /* access */
{ &vop_getattr_desc, ufs_getattr }, /* getattr */
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ufsfifo_read }, /* read */
{ &vop_write_desc, ufsfifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
{ &vop_fsync_desc, ffs_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, ufs_inactive }, /* inactive */
{ &vop_reclaim_desc, ffs_reclaim }, /* reclaim */
{ &vop_lock_desc, ufs_lock }, /* lock */
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ &vop_print_desc, ufs_print }, /* print */
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
{ &vop_getextattr_desc, ffs_getextattr }, /* getextattr */
Index: src/sys/ufs/lfs/lfs_vnops.c
diff -u src/sys/ufs/lfs/lfs_vnops.c:1.226 src/sys/ufs/lfs/lfs_vnops.c:1.227
--- src/sys/ufs/lfs/lfs_vnops.c:1.226 Mon Dec 7 04:12:10 2009
+++ src/sys/ufs/lfs/lfs_vnops.c Mon Mar 29 13:11:34 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_vnops.c,v 1.226 2009/12/07 04:12:10 eeh Exp $ */
+/* $NetBSD: lfs_vnops.c,v 1.227 2010/03/29 13:11:34 pooka Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.226 2009/12/07 04:12:10 eeh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.227 2010/03/29 13:11:34 pooka Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -204,45 +204,45 @@
int (**lfs_fifoop_p)(void *);
const struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
{ &vop_default_desc, vn_default_error },
- { &vop_lookup_desc, fifo_lookup }, /* lookup */
- { &vop_create_desc, fifo_create }, /* create */
- { &vop_mknod_desc, fifo_mknod }, /* mknod */
- { &vop_open_desc, fifo_open }, /* open */
+ { &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
+ { &vop_create_desc, vn_fifo_bypass }, /* create */
+ { &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
+ { &vop_open_desc, vn_fifo_bypass }, /* open */
{ &vop_close_desc, lfsfifo_close }, /* close */
{ &vop_access_desc, ufs_access }, /* access */
{ &vop_getattr_desc, lfs_getattr }, /* getattr */
{ &vop_setattr_desc, lfs_setattr }, /* setattr */
{ &vop_read_desc, ufsfifo_read }, /* read */
{ &vop_write_desc, ufsfifo_write }, /* write */
- { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
+ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
- { &vop_poll_desc, fifo_poll }, /* poll */
- { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */
- { &vop_revoke_desc, fifo_revoke }, /* revoke */
- { &vop_mmap_desc, fifo_mmap }, /* mmap */
- { &vop_fsync_desc, fifo_fsync }, /* fsync */
- { &vop_seek_desc, fifo_seek }, /* seek */
- { &vop_remove_desc, fifo_remove }, /* remove */
- { &vop_link_desc, fifo_link }, /* link */
- { &vop_rename_desc, fifo_rename }, /* rename */
- { &vop_mkdir_desc, fifo_mkdir }, /* mkdir */
- { &vop_rmdir_desc, fifo_rmdir }, /* rmdir */
- { &vop_symlink_desc, fifo_symlink }, /* symlink */
- { &vop_readdir_desc, fifo_readdir }, /* readdir */
- { &vop_readlink_desc, fifo_readlink }, /* readlink */
- { &vop_abortop_desc, fifo_abortop }, /* abortop */
+ { &vop_poll_desc, vn_fifo_bypass }, /* poll */
+ { &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
+ { &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
+ { &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
+ { &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
+ { &vop_seek_desc, vn_fifo_bypass }, /* seek */
+ { &vop_remove_desc, vn_fifo_bypass }, /* remove */
+ { &vop_link_desc, vn_fifo_bypass }, /* link */
+ { &vop_rename_desc, vn_fifo_bypass }, /* rename */
+ { &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
+ { &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
+ { &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
+ { &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
+ { &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
+ { &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
{ &vop_inactive_desc, lfs_inactive }, /* inactive */
{ &vop_reclaim_desc, lfs_reclaim }, /* reclaim */
{ &vop_lock_desc, ufs_lock }, /* lock */
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
- { &vop_bmap_desc, fifo_bmap }, /* bmap */
- { &vop_strategy_desc, fifo_strategy }, /* strategy */
+ { &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
+ { &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
{ &vop_print_desc, ufs_print }, /* print */
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
- { &vop_pathconf_desc, fifo_pathconf }, /* pathconf */
- { &vop_advlock_desc, fifo_advlock }, /* advlock */
+ { &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
+ { &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
{ &vop_bwrite_desc, lfs_bwrite }, /* bwrite */
- { &vop_putpages_desc, fifo_putpages }, /* putpages */
+ { &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
{ NULL, NULL }
};
const struct vnodeopv_desc lfs_fifoop_opv_desc =
Index: src/sys/ufs/ufs/ufs_vnops.c
diff -u src/sys/ufs/ufs/ufs_vnops.c:1.180 src/sys/ufs/ufs/ufs_vnops.c:1.181
--- src/sys/ufs/ufs/ufs_vnops.c:1.180 Wed Oct 14 09:40:27 2009
+++ src/sys/ufs/ufs/ufs_vnops.c Mon Mar 29 13:11:34 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_vnops.c,v 1.180 2009/10/14 09:40:27 hannken Exp $ */
+/* $NetBSD: ufs_vnops.c,v 1.181 2010/03/29 13:11:34 pooka Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.180 2009/10/14 09:40:27 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.181 2010/03/29 13:11:34 pooka Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -1908,7 +1908,7 @@
ip->i_mode, ip->i_uid, ip->i_gid,
(long long)ip->i_size);
if (vp->v_type == VFIFO)
- fifo_printinfo(vp);
+ VOCALL(fifo_vnodeop_p, VOFFSET(vop_print), v);
printf("\n");
return (0);
}