zfs/include/sys
Richard Yao b01615d5ac Constify structures containing function pointers
The PaX team modified the kernel's modpost to report writeable function
pointers as section mismatches because they are potential exploit
targets. We could ignore the warnings, but their presence can obscure
actual issues. Proper const correctness can also catch programming
mistakes.

Building the kernel modules against a PaX/GrSecurity patched Linux 3.4.2
kernel reports 133 section mismatches prior to this patch. This patch
eliminates 130 of them. The quantity of writeable function pointers
eliminated by constifying each structure is as follows:

vdev_opts_t             52
zil_replay_func_t       24
zio_compress_info_t     24
zio_checksum_info_t     9
space_map_ops_t         7
arc_byteswap_func_t     5

The remaining 3 writeable function pointers cannot be addressed by this
patch. 2 of them are in zpl_fs_type. The kernel's sget function requires
that this be non-const. The final writeable function pointer is created
by SPL_SHRINKER_DECLARE. The kernel's set_shrinker() and
remove_shrinker() functions also require that this be non-const.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1300
2013-03-04 08:49:32 -08:00
..
fm Illumos #2671: zpool import should not fail if vdev ashift has increased 2012-11-15 11:05:59 -08:00
fs Illumos #2762: zpool command should have better support for feature flags 2013-01-08 10:35:43 -08:00
Makefile.am Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
arc.h Illumos #3145, #3212 2013-01-08 10:35:44 -08:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
bptree.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dbuf.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
ddt.h Add ddt_object_count() error handling 2012-10-29 08:57:45 -07:00
dmu.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
dmu_impl.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dmu_objset.h Illumos #3100: zvol rename fails with EBUSY when dirty. 2012-10-03 13:59:02 -07:00
dmu_traverse.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dmu_tx.h Add --enable-debug-dmu-tx configure option 2012-03-23 12:25:17 -07:00
dmu_zfetch.h Add missing ZFS tunables 2011-05-04 10:02:37 -07:00
dnode.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_dataset.h Use dsl_dataset_snap_lookup() 2013-01-25 15:07:40 -08:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #1644, #1645, #1646, #1647, #1708 2012-07-31 09:25:30 -07:00
dsl_dir.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
dsl_pool.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
dsl_prop.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_scan.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dsl_synctask.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
metaslab.h Add FASTWRITE algorithm for synchronous writes. 2012-10-17 08:56:41 -07:00
metaslab_impl.h Add FASTWRITE algorithm for synchronous writes. 2012-10-17 08:56:41 -07:00
nvpair.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
refcount.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
rrwlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
sa_impl.h Illumos #3208 cross-endian incorrect user/group accounting 2013-01-14 09:32:22 -08:00
spa.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Illumos #3090 and #3102 2013-01-08 10:35:42 -08:00
space_map.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
txg.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
txg_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev.h Illumos #3090 and #3102 2013-01-08 10:35:42 -08:00
vdev_disk.h Linux 2.6.x compat, blkdev_compat.h 2011-02-23 12:29:38 -08:00
vdev_file.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_impl.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfeature.h Illumos #2762: zpool command should have better support for feature flags 2013-01-08 10:35:43 -08:00
zfs_acl.h Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
zfs_context.h Remove NPTL_GUARD_WITHIN_STACK 2013-01-29 10:58:20 -08:00
zfs_ctldir.h Linux 3.7 compat, schedule_delayed_work() 2012-12-12 10:47:05 -08:00
zfs_debug.h Cleanly support debug packages 2012-02-27 14:08:17 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h Speed up 'zfs list -t snapshot -o name -s name' 2012-06-14 09:49:04 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Range lock performance improvements 2011-03-08 12:44:06 -08:00
zfs_sa.h Implement SA based xattrs 2011-11-28 15:45:51 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Fix 'zfs rollback' on mounted file systems 2013-01-17 09:51:20 -08:00
zfs_vnops.h Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
zfs_znode.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil_impl.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
zio.h Illumos #3035 LZ4 compression support in ZFS and GRUB 2013-01-29 09:28:20 -08:00
zio_checksum.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_compress.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zpl.h Fix 'zfs rollback' on mounted file systems 2013-01-17 09:51:20 -08:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Fix using zvol as slog device 2012-12-18 11:02:28 -08:00