freebsd-dev/module/zfs
Brian Behlendorf 7a060636b0 Conserve stack in dsl_scan_visitbp()
The recursive call chain dsl_scan_visitbp() -> dsl_scan_recurse() ->
dsl_scan_visitdnode() -> dsl_scan_visitbp has been observed to consume
considerable stack resulting in a stack overflow (>8k).  The cleanest
way I see to fix this with minimal impact to the existing flow of
code, and with the fewest performance concerns, is to always inline
dsl_scan_recurse() and dsl_scan_visitdnode().  While this will increase
the function size of dsl_scan_visitbp(), by 4660 bytes, it also reduces
the stack requirements by removing the function call overhead.

Issue #174
2011-04-26 13:37:35 -07:00
..
arc.c Enforce ARC meta-data limits 2011-04-21 13:49:31 -07:00
bplist.c
bpobj.c
dbuf.c
ddt_zap.c
ddt.c
dmu_diff.c
dmu_object.c
dmu_objset.c Merge branch 'zpl' 2011-02-18 09:31:25 -08:00
dmu_send.c
dmu_traverse.c
dmu_tx.c
dmu_zfetch.c
dmu.c
dnode_sync.c
dnode.c
dsl_dataset.c
dsl_deadlist.c
dsl_deleg.c
dsl_dir.c
dsl_pool.c Fix gcc compiler warning, dsl_pool_create() 2011-04-19 09:04:51 -07:00
dsl_prop.c Fix enum compiler warning 2011-02-23 12:52:51 -08:00
dsl_scan.c Conserve stack in dsl_scan_visitbp() 2011-04-26 13:37:35 -07:00
dsl_synctask.c
fm.c
gzip.c
lzjb.c
Makefile.in
metaslab.c
refcount.c
rrwlock.c
sa.c
sha256.c
spa_boot.c
spa_config.c
spa_errlog.c
spa_history.c
spa_misc.c
spa.c
space_map.c
txg.c Fix ASSERTION(!dsl_pool_sync_context(tx->tx_pool)) 2011-04-07 09:52:16 -07:00
uberblock.c
unique.c
vdev_cache.c
vdev_disk.c Fix spurious -EFAULT when setting I/O scheduler 2011-04-22 14:55:35 -07:00
vdev_file.c
vdev_label.c
vdev_mirror.c
vdev_missing.c
vdev_queue.c
vdev_raidz.c
vdev_root.c
vdev.c
zap_leaf.c
zap_micro.c
zap.c
zfs_acl.c
zfs_byteswap.c
zfs_debug.c
zfs_dir.c Added missing initialization for va.va_dentry in zfs_get_xattrdir. 2011-04-19 13:57:41 -07:00
zfs_fm.c
zfs_fuid.c Drop HAVE_XVATTR macros 2011-03-02 11:44:34 -08:00
zfs_ioctl.c Suppress 'zfs receive' memory warning 2011-04-20 10:22:31 -07:00
zfs_log.c Drop HAVE_XVATTR macros 2011-03-02 11:44:34 -08:00
zfs_onexit.c
zfs_replay.c Use Linux ATTR_ versions 2011-03-03 11:29:15 -08:00
zfs_rlock.c Range lock performance improvements 2011-03-08 12:44:06 -08:00
zfs_sa.c Drop HAVE_XVATTR macros 2011-03-02 11:44:34 -08:00
zfs_vfsops.c Linux 2.6.39 compat, invalidate_inodes() 2011-04-19 08:57:23 -07:00
zfs_vnops.c Conserve stack in zfs_setattr() 2011-03-09 13:30:03 -08:00
zfs_znode.c Fixed a use-after-free bug in zfs_zget(). 2011-04-21 13:48:01 -07:00
zil.c Fix zvol deadlock 2011-04-26 12:56:35 -07:00
zio_checksum.c
zio_compress.c
zio_inject.c
zio.c Use KM_PUSHPAGE instead of KM_SLEEP 2011-03-22 12:14:55 -07:00
zle.c
zpl_file.c Linux 2.6.29 compat, credentials 2011-03-22 12:15:54 -07:00
zpl_inode.c Call d_instantiate before unlocking inode 2011-04-07 09:51:57 -07:00
zpl_super.c Linux 2.6.29 compat, credentials 2011-04-07 14:27:09 -07:00
zpl_xattr.c Truncate the xattr znode when updating existing attributes. 2011-04-19 14:14:40 -07:00
zrlock.c
zvol.c Use udev to create /dev/zvol/[dataset_name] links 2011-02-25 09:43:19 -08:00