# HG changeset patch # Parent e5cdb8a60372665a0ccbfd46ce460e028f5b4bd0 Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find. The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later. The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which is going to dispatch to a block device op. The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP. diff -r e5cdb8a60372 sys/coda/coda_vnops.c --- a/sys/coda/coda_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/coda/coda_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -109,6 +109,8 @@ { &vop_setattr_desc, coda_setattr }, /* setattr */ { &vop_read_desc, coda_read }, /* read */ { &vop_write_desc, coda_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, coda_ioctl }, /* ioctl */ { &vop_mmap_desc, genfs_mmap }, /* mmap */ diff -r e5cdb8a60372 sys/fs/adosfs/advnops.c --- a/sys/fs/adosfs/advnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/adosfs/advnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -105,6 +105,8 @@ { &vop_setattr_desc, adosfs_setattr }, /* setattr */ { &vop_read_desc, adosfs_read }, /* read */ { &vop_write_desc, adosfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, adosfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, adosfs_ioctl }, /* ioctl */ { &vop_poll_desc, adosfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/cd9660/cd9660_vnops.c --- a/sys/fs/cd9660/cd9660_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/cd9660/cd9660_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -859,6 +859,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, cd9660_read }, /* read */ { &vop_write_desc, cd9660_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, cd9660_ioctl }, /* ioctl */ { &vop_poll_desc, cd9660_poll }, /* poll */ @@ -909,6 +911,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -957,6 +961,8 @@ { &vop_setattr_desc, cd9660_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/fs/efs/efs_vnops.c --- a/sys/fs/efs/efs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/efs/efs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -809,6 +809,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, efs_read }, /* read */ { &vop_write_desc, genfs_eopnotsupp}, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp}, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp}, /* fdiscard */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, genfs_poll }, /* poll */ @@ -865,6 +867,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -921,6 +925,8 @@ { &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/fs/filecorefs/filecore_vnops.c --- a/sys/fs/filecorefs/filecore_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/filecorefs/filecore_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -565,6 +565,8 @@ { &vop_setattr_desc, filecore_setattr }, /* setattr */ { &vop_read_desc, filecore_read }, /* read */ { &vop_write_desc, filecore_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, filecore_fcntl }, /* fcntl */ { &vop_ioctl_desc, filecore_ioctl }, /* ioctl */ { &vop_poll_desc, filecore_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/hfs/hfs_vnops.c --- a/sys/fs/hfs/hfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/hfs/hfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -165,6 +165,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, hfs_vop_read }, /* read */ { &vop_write_desc, genfs_eopnotsupp }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, genfs_eopnotsupp }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, genfs_eopnotsupp }, /* poll */ @@ -219,6 +221,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -275,6 +279,8 @@ { &vop_setattr_desc, hfs_vop_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/fs/msdosfs/msdosfs_vnops.c --- a/sys/fs/msdosfs/msdosfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/msdosfs/msdosfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -1871,6 +1871,8 @@ { &vop_setattr_desc, msdosfs_setattr }, /* setattr */ { &vop_read_desc, msdosfs_read }, /* read */ { &vop_write_desc, msdosfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, msdosfs_ioctl }, /* ioctl */ { &vop_poll_desc, msdosfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/nilfs/nilfs_vnops.c --- a/sys/fs/nilfs/nilfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/nilfs/nilfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -1572,6 +1572,8 @@ { &vop_setattr_desc, nilfs_setattr }, /* setattr */ /* TODO chflags */ { &vop_read_desc, nilfs_read }, /* read */ { &vop_write_desc, nilfs_write }, /* write */ /* WRITE */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ /* TODO? */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ /* TODO? */ { &vop_poll_desc, genfs_poll }, /* poll */ /* TODO/OK? */ diff -r e5cdb8a60372 sys/fs/ntfs/ntfs_vnops.c --- a/sys/fs/ntfs/ntfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/ntfs/ntfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -818,6 +818,8 @@ { &vop_setattr_desc, genfs_eopnotsupp }, /* setattr */ { &vop_read_desc, (vop_t *) ntfs_read }, /* read */ { &vop_write_desc, (vop_t *) ntfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/ptyfs/ptyfs_vnops.c --- a/sys/fs/ptyfs/ptyfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/ptyfs/ptyfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -175,6 +175,8 @@ { &vop_setattr_desc, ptyfs_setattr }, /* setattr */ { &vop_read_desc, ptyfs_read }, /* read */ { &vop_write_desc, ptyfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ptyfs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ptyfs_fcntl }, /* fcntl */ { &vop_poll_desc, ptyfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/puffs/puffs_vnops.c --- a/sys/fs/puffs/puffs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/puffs/puffs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -113,6 +113,8 @@ { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ { &vop_read_desc, puffs_vnop_checkop }, /* read */ { &vop_write_desc, puffs_vnop_checkop }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fsync_desc, puffs_vnop_fsync }, /* REAL fsync */ { &vop_seek_desc, puffs_vnop_checkop }, /* seek */ { &vop_remove_desc, puffs_vnop_checkop }, /* remove */ @@ -168,6 +170,8 @@ { &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */ { &vop_read_desc, puffs_vnop_spec_read }, /* update, read */ { &vop_write_desc, puffs_vnop_spec_write }, /* update, write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* spec_ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ { &vop_poll_desc, spec_poll }, /* spec_poll */ @@ -225,6 +229,8 @@ { &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_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* dummy */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/fs/smbfs/smbfs_vnops.c --- a/sys/fs/smbfs/smbfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/smbfs/smbfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -127,6 +127,8 @@ { &vop_advlock_desc, smbfs_advlock }, { &vop_close_desc, smbfs_close }, { &vop_create_desc, smbfs_create }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_fsync_desc, smbfs_fsync }, { &vop_getattr_desc, smbfs_getattr }, { &vop_getpages_desc, genfs_compat_getpages }, diff -r e5cdb8a60372 sys/fs/sysvbfs/sysvbfs.c --- a/sys/fs/sysvbfs/sysvbfs.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/sysvbfs/sysvbfs.c Sun Mar 23 23:21:37 2014 -0400 @@ -59,6 +59,8 @@ { &vop_setattr_desc, sysvbfs_setattr }, /* setattr */ { &vop_read_desc, sysvbfs_read }, /* read */ { &vop_write_desc, sysvbfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/fs/tmpfs/tmpfs_fifoops.c --- a/sys/fs/tmpfs/tmpfs_fifoops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_fifoops.c Sun Mar 23 23:21:37 2014 -0400 @@ -59,6 +59,8 @@ { &vop_setattr_desc, tmpfs_fifo_setattr }, { &vop_read_desc, tmpfs_fifo_read }, { &vop_write_desc, tmpfs_fifo_write }, + { &vop_fallocate_desc, vn_fifo_bypass }, + { &vop_fdiscard_desc, vn_fifo_bypass }, { &vop_ioctl_desc, tmpfs_fifo_ioctl }, { &vop_fcntl_desc, tmpfs_fifo_fcntl }, { &vop_poll_desc, tmpfs_fifo_poll }, diff -r e5cdb8a60372 sys/fs/tmpfs/tmpfs_specops.c --- a/sys/fs/tmpfs/tmpfs_specops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_specops.c Sun Mar 23 23:21:37 2014 -0400 @@ -62,6 +62,8 @@ { &vop_setattr_desc, tmpfs_spec_setattr }, { &vop_read_desc, tmpfs_spec_read }, { &vop_write_desc, tmpfs_spec_write }, + { &vop_fallocate_desc, spec_fallocate }, + { &vop_fdiscard_desc, spec_fdiscard }, { &vop_ioctl_desc, tmpfs_spec_ioctl }, { &vop_fcntl_desc, tmpfs_spec_fcntl }, { &vop_poll_desc, tmpfs_spec_poll }, diff -r e5cdb8a60372 sys/fs/tmpfs/tmpfs_vnops.c --- a/sys/fs/tmpfs/tmpfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/tmpfs/tmpfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -74,6 +74,8 @@ { &vop_setattr_desc, tmpfs_setattr }, { &vop_read_desc, tmpfs_read }, { &vop_write_desc, tmpfs_write }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_ioctl_desc, tmpfs_ioctl }, { &vop_fcntl_desc, tmpfs_fcntl }, { &vop_poll_desc, tmpfs_poll }, diff -r e5cdb8a60372 sys/fs/udf/udf_vnops.c --- a/sys/fs/udf/udf_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/udf/udf_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -2143,6 +2143,8 @@ { &vop_setattr_desc, udf_setattr }, /* setattr */ /* TODO chflags */ { &vop_read_desc, udf_read }, /* read */ { &vop_write_desc, udf_write }, /* write */ /* WRITE */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ /* TODO? */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ /* TODO? */ { &vop_poll_desc, genfs_poll }, /* poll */ /* TODO/OK? */ diff -r e5cdb8a60372 sys/fs/union/union_vnops.c --- a/sys/fs/union/union_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/union/union_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -155,6 +155,8 @@ { &vop_setattr_desc, union_setattr }, /* setattr */ { &vop_read_desc, union_read }, /* read */ { &vop_write_desc, union_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, union_ioctl }, /* ioctl */ { &vop_poll_desc, union_poll }, /* select */ { &vop_revoke_desc, union_revoke }, /* revoke */ diff -r e5cdb8a60372 sys/fs/unionfs/unionfs_vnops.c --- a/sys/fs/unionfs/unionfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/unionfs/unionfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -1820,6 +1820,8 @@ { &vop_setattr_desc, unionfs_setattr }, /* setattr */ { &vop_read_desc, unionfs_read }, /* read */ { &vop_write_desc, unionfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, unionfs_ioctl }, /* ioctl */ { &vop_poll_desc, unionfs_poll }, /* select */ { &vop_revoke_desc, unionfs_revoke }, /* revoke */ diff -r e5cdb8a60372 sys/fs/v7fs/v7fs_extern.c --- a/sys/fs/v7fs/v7fs_extern.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/fs/v7fs/v7fs_extern.c Sun Mar 23 23:21:37 2014 -0400 @@ -65,6 +65,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, v7fs_read }, /* read */ { &vop_write_desc, v7fs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, genfs_enoioctl }, /* ioctl */ { &vop_poll_desc, genfs_poll }, /* poll */ @@ -112,6 +114,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -158,6 +162,8 @@ { &vop_setattr_desc, v7fs_setattr }, /* setattr */ { &vop_read_desc, vn_fifo_bypass }, /* read */ { &vop_write_desc, vn_fifo_bypass }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/miscfs/deadfs/dead_vnops.c --- a/sys/miscfs/deadfs/dead_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/deadfs/dead_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -87,6 +87,8 @@ { &vop_close_desc, dead_close }, /* close */ { &vop_read_desc, dead_read }, /* read */ { &vop_write_desc, dead_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, dead_fcntl }, /* fcntl */ { &vop_ioctl_desc, dead_ioctl }, /* ioctl */ { &vop_poll_desc, dead_poll }, /* poll */ diff -r e5cdb8a60372 sys/miscfs/fdesc/fdesc_vnops.c --- a/sys/miscfs/fdesc/fdesc_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/fdesc/fdesc_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -139,6 +139,8 @@ { &vop_setattr_desc, fdesc_setattr }, /* setattr */ { &vop_read_desc, fdesc_read }, /* read */ { &vop_write_desc, fdesc_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, fdesc_ioctl }, /* ioctl */ { &vop_fcntl_desc, fdesc_fcntl }, /* fcntl */ { &vop_poll_desc, fdesc_poll }, /* poll */ diff -r e5cdb8a60372 sys/miscfs/fifofs/fifo_vnops.c --- a/sys/miscfs/fifofs/fifo_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/fifofs/fifo_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -636,6 +636,8 @@ { &vop_setattr_desc, genfs_ebadf }, /* setattr */ { &vop_read_desc, fifo_read }, /* read */ { &vop_write_desc, fifo_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, fifo_ioctl }, /* ioctl */ { &vop_poll_desc, fifo_poll }, /* poll */ { &vop_kqfilter_desc, fifo_kqfilter }, /* kqfilter */ diff -r e5cdb8a60372 sys/miscfs/kernfs/kernfs_vnops.c --- a/sys/miscfs/kernfs/kernfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/kernfs/kernfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -190,6 +190,8 @@ { &vop_setattr_desc, kernfs_setattr }, /* setattr */ { &vop_read_desc, kernfs_read }, /* read */ { &vop_write_desc, kernfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, kernfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, kernfs_ioctl }, /* ioctl */ { &vop_poll_desc, kernfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/miscfs/procfs/procfs_vnops.c --- a/sys/miscfs/procfs/procfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/procfs/procfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -259,6 +259,8 @@ { &vop_setattr_desc, procfs_setattr }, /* setattr */ { &vop_read_desc, procfs_read }, /* read */ { &vop_write_desc, procfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, procfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, procfs_ioctl }, /* ioctl */ { &vop_poll_desc, procfs_poll }, /* poll */ diff -r e5cdb8a60372 sys/miscfs/specfs/spec_vnops.c --- a/sys/miscfs/specfs/spec_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/miscfs/specfs/spec_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -123,6 +123,8 @@ { &vop_setattr_desc, spec_setattr }, /* setattr */ { &vop_read_desc, spec_read }, /* read */ { &vop_write_desc, spec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, spec_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ diff -r e5cdb8a60372 sys/nfs/nfs_vnops.c --- a/sys/nfs/nfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/nfs/nfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -107,6 +107,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfs_read }, /* read */ { &vop_write_desc, nfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, nfs_ioctl }, /* ioctl */ { &vop_poll_desc, nfs_poll }, /* poll */ @@ -158,6 +160,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfsspec_read }, /* read */ { &vop_write_desc, nfsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -206,6 +210,8 @@ { &vop_setattr_desc, nfs_setattr }, /* setattr */ { &vop_read_desc, nfsfifo_read }, /* read */ { &vop_write_desc, nfsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_fcntl_desc, genfs_fcntl }, /* fcntl */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/ufs/chfs/chfs_vnops.c --- a/sys/ufs/chfs/chfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/ufs/chfs/chfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -1616,6 +1616,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, chfs_read }, { &vop_write_desc, chfs_write }, + { &vop_fallocate_desc, genfs_eopnotsupp }, + { &vop_fdiscard_desc, genfs_eopnotsupp }, { &vop_ioctl_desc, genfs_enoioctl }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, genfs_poll }, @@ -1672,6 +1674,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, chfs_read }, { &vop_write_desc, chfs_write }, + { &vop_fallocate_desc, spec_fallocate }, + { &vop_fdiscard_desc, spec_fdiscard }, { &vop_ioctl_desc, spec_ioctl }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, spec_poll }, @@ -1726,6 +1730,8 @@ { &vop_setattr_desc, chfs_setattr }, { &vop_read_desc, ufsfifo_read }, { &vop_write_desc, ufsfifo_write }, + { &vop_fallocate_desc, vn_fifo_bypass }, + { &vop_fdiscard_desc, vn_fifo_bypass }, { &vop_ioctl_desc, vn_fifo_bypass }, { &vop_fcntl_desc, genfs_fcntl }, { &vop_poll_desc, vn_fifo_bypass }, diff -r e5cdb8a60372 sys/ufs/ext2fs/ext2fs_vnops.c --- a/sys/ufs/ext2fs/ext2fs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/ufs/ext2fs/ext2fs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -1144,6 +1144,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ext2fs_read }, /* read */ { &vop_write_desc, ext2fs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ufs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, ufs_poll }, /* poll */ @@ -1192,6 +1194,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ufsspec_read }, /* read */ { &vop_write_desc, ufsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -1240,6 +1244,8 @@ { &vop_setattr_desc, ext2fs_setattr }, /* setattr */ { &vop_read_desc, ufsfifo_read }, /* read */ { &vop_write_desc, ufsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/ufs/ffs/ffs_vnops.c --- a/sys/ufs/ffs/ffs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/ufs/ffs/ffs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -115,6 +115,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ffs_read }, /* read */ { &vop_write_desc, ffs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ufs_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, ufs_poll }, /* poll */ @@ -169,6 +171,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ufsspec_read }, /* read */ { &vop_write_desc, ufsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -223,6 +227,8 @@ { &vop_setattr_desc, ufs_setattr }, /* setattr */ { &vop_read_desc, ufsfifo_read }, /* read */ { &vop_write_desc, ufsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ufs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/ufs/lfs/lfs_vnops.c --- a/sys/ufs/lfs/lfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/ufs/lfs/lfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -127,6 +127,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, lfs_read }, /* read */ { &vop_write_desc, lfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, ulfs_ioctl }, /* ioctl */ { &vop_fcntl_desc, lfs_fcntl }, /* fcntl */ { &vop_poll_desc, ulfs_poll }, /* poll */ @@ -181,6 +183,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, ulfsspec_read }, /* read */ { &vop_write_desc, ulfsspec_write }, /* write */ + { &vop_fallocate_desc, spec_fallocate }, /* fallocate */ + { &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ { &vop_ioctl_desc, spec_ioctl }, /* ioctl */ { &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */ { &vop_poll_desc, spec_poll }, /* poll */ @@ -235,6 +239,8 @@ { &vop_setattr_desc, lfs_setattr }, /* setattr */ { &vop_read_desc, ulfsfifo_read }, /* read */ { &vop_write_desc, ulfsfifo_write }, /* write */ + { &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ + { &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ { &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ { &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */ { &vop_poll_desc, vn_fifo_bypass }, /* poll */ diff -r e5cdb8a60372 sys/ufs/mfs/mfs_vnops.c --- a/sys/ufs/mfs/mfs_vnops.c Sun Mar 23 14:42:07 2014 -0400 +++ b/sys/ufs/mfs/mfs_vnops.c Sun Mar 23 23:21:37 2014 -0400 @@ -68,6 +68,8 @@ { &vop_setattr_desc, mfs_setattr }, /* setattr */ { &vop_read_desc, mfs_read }, /* read */ { &vop_write_desc, mfs_write }, /* write */ + { &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ + { &vop_fdiscard_desc, genfs_eopnotsupp }, /* fdiscard */ { &vop_ioctl_desc, mfs_ioctl }, /* ioctl */ { &vop_poll_desc, mfs_poll }, /* poll */ { &vop_revoke_desc, mfs_revoke }, /* revoke */