mirror_zfs/module/zfs
Brian Behlendorf 6656bf5621 Fix stack traverse_visitbp()
Due to  limited stack space recursive functions are frowned upon in
the Linux kernel.  However, they often are the most elegant solution
to a problem.  The following code preserves the recursive function
traverse_visitbp() but moves the local variables AND function
arguments to the heap to minimize the stack frame size.  Enough
space is initially allocated on the stack for 20 levels of recursion.
This change does ugly-up-the-code but it reduces the worst case
usage from roughly 4160 bytes to 960 bytes on x86_64 archs.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-31 08:38:50 -07:00
..
include/sys Fix kstat xuio 2010-08-31 08:38:45 -07:00
arc.c Fix missing newlines 2010-08-31 08:38:46 -07:00
bplist.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
bpobj.c Update to onnv_147 2010-08-26 14:24:34 -07:00
dbuf.c Fix stack noinline 2010-08-31 08:38:49 -07:00
ddt_zap.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
ddt.c Fix gcc c90 compliance warnings 2010-08-27 15:28:32 -07:00
dmu_diff.c Update to onnv_147 2010-08-26 14:24:34 -07:00
dmu_object.c Update to onnv_147 2010-08-26 14:24:34 -07:00
dmu_objset.c Fix stack dmu_objset_snapshot() 2010-08-31 08:38:47 -07:00
dmu_send.c Fix stack noinline 2010-08-31 08:38:49 -07:00
dmu_traverse.c Fix stack traverse_visitbp() 2010-08-31 08:38:50 -07:00
dmu_tx.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
dmu_zfetch.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
dmu.c Fix kstat xuio 2010-08-31 08:38:45 -07:00
dnode_sync.c Fix dbuf eviction assertion 2010-08-31 08:38:45 -07:00
dnode.c Fix dnode_move() scope 2010-08-31 08:38:47 -07:00
dsl_dataset.c Fix stack dsl_dataset_destroy() 2010-08-31 08:38:48 -07:00
dsl_deadlist.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
dsl_deleg.c Fix stack dsl_deleg_get() 2010-08-31 08:38:48 -07:00
dsl_dir.c Fix stack dsl_dir_open_spa() 2010-08-31 08:38:48 -07:00
dsl_pool.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
dsl_prop.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
dsl_scan.c Fix stack dsl_scan_visitbp() 2010-08-31 08:38:48 -07:00
dsl_synctask.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
fm.c Update to onnv_147 2010-08-26 14:24:34 -07:00
gzip.c Fix zmod.h usage in userspace 2010-08-31 08:38:46 -07:00
lzjb.c Fix stack lzjb 2010-08-31 08:38:49 -07:00
metaslab.c Fix metaslab 2010-08-31 08:38:45 -07:00
refcount.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
rrwlock.c Rebase master to b121 2009-08-18 11:43:27 -07:00
sa.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
sha256.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
spa_boot.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
spa_config.c Update to onnv_147 2010-08-26 14:24:34 -07:00
spa_errlog.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
spa_history.c Fix gcc invalid prototype warnings 2010-08-27 15:34:03 -07:00
spa_misc.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
spa.c Fix stack inline 2010-08-31 08:38:48 -07:00
space_map.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
txg.c Fix commit callbacks 2010-08-31 08:38:44 -07:00
uberblock.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
unique.c Fix gcc ident pragma warnings 2010-08-27 15:34:02 -07:00
vdev_cache.c Fix stack vdev_cache_read() 2010-08-31 08:38:49 -07:00
vdev_file.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
vdev_label.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
vdev_mirror.c Fix gcc c90 compliance warnings 2010-08-27 15:28:32 -07:00
vdev_missing.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
vdev_queue.c Fix gcc c90 compliance warnings 2010-08-27 15:28:32 -07:00
vdev_raidz.c Fix variables named current 2010-08-31 08:38:44 -07:00
vdev_root.c Fix gcc c90 compliance warnings 2010-08-27 15:28:32 -07:00
vdev.c Fix list handling to only use the API 2010-08-31 08:38:45 -07:00
zap_leaf.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
zap_micro.c Fix rw_init() usage 2010-08-31 08:38:46 -07:00
zap.c Fix rw_init() usage 2010-08-31 08:38:46 -07:00
zfs_acl.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_byteswap.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
zfs_ctldir.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_debug.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zfs_dir.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_fm.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zfs_fuid.c Fix gcc missing parenthesis warnings 2010-08-31 08:38:35 -07:00
zfs_ioctl.c Fix zfs_ioc_objset_stats 2010-08-31 08:38:47 -07:00
zfs_log.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_onexit.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_replay.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_rlock.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
zfs_sa.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_vfsops.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_vnops.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs_znode.c Fix dbuf_dirty_record_t leaks 2010-08-31 08:38:44 -07:00
zil.c Fix gcc uninitialized variable warnings 2010-08-31 08:38:43 -07:00
zio_checksum.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zio_compress.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zio_inject.c Update to onnv_147 2010-08-26 14:24:34 -07:00
zio.c Fix stack zio_execute() 2010-08-31 08:38:50 -07:00
zle.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zrlock.c Fix gcc c90 compliance warnings 2010-08-27 15:28:32 -07:00