<dec f='src/src/sys/ufs/lfs/lfs_extern.h' l='257' type='int lfs_strategy(void * )'/>
<use f='src/src/sys/ufs/lfs/lfs_vnops.c' l='224'/>
<use f='src/src/sys/ufs/lfs/lfs_vnops.c' l='224'/>
<use f='src/src/sys/ufs/lfs/lfs_vnops.c' l='224'/>
<use f='src/src/sys/ufs/lfs/lfs_vnops.c' l='224'/>
<def f='src/src/sys/ufs/lfs/lfs_vnops.c' l='1460' ll='1569' type='int lfs_strategy(void * v)'/>
<doc f='src/src/sys/ufs/lfs/lfs_vnops.c' l='1444'>/*
 * Read a block from a storage device.
 *
 * Calculate the logical to physical mapping if not done already,
 * then call the device strategy routine.
 *
 * In order to avoid reading blocks that are in the process of being
 * written by the cleaner---and hence are not mutexed by the normal
 * buffer cache / page cache mechanisms---check for collisions before
 * reading.
 *
 * We inline ulfs_strategy to make sure that the VOP_BMAP occurs *before*
 * the active cleaner test.
 *
 * XXX This code assumes that lfs_markv makes synchronous checkpoints.
 */</doc>
