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 <rum...@ephemeral.org> @@ -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); }