On 02/20/13 09:10, Brian Foster wrote:
The majority of xfs_iomap_prealloc_size() executes within the check for lack of default I/O size. Reverse the logic to remove the extra indentation. Signed-off-by: Brian Foster<bfoster@xxxxxxxxxx> Reviewed-by: Dave Chinner<dchinner@xxxxxxxxxx> Reviewed-by: Ben Myers<bpm@xxxxxxx> --- fs/xfs/xfs_iomap.c | 63 ++++++++++++++++++++++++++------------------------- 1 files changed, 32 insertions(+), 31 deletions(-) diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 912d83d..d914419 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -381,42 +381,43 @@ xfs_iomap_prealloc_size( int nimaps) { xfs_fsblock_t alloc_blocks = 0; + int shift = 0; + int64_t freesp;
...
+ freesp = mp->m_sb.sb_fdblocks;
...
+ /* + * If we are still trying to allocate more space than is + * available, squash the prealloc hard. This can happen if we + * have a large file on a small filesystem and the above + * lowspace thresholds are smaller than MAXEXTLEN. + */ + while (alloc_blocks>= freesp) + alloc_blocks>>= 4;
Hi Brian, I am looking at your speculative preallocation quota throttling series.
I know this code is from commit 4d559a3b. would this not be bad of freesp == 0?
--Mark. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs