xfs
[Top] [All Lists]

[PATCH 1/4] large-fs: fix large_fs space detection

To: xfs@xxxxxxxxxxx
Subject: [PATCH 1/4] large-fs: fix large_fs space detection
From: Dmitry Monakhov <dmonakhov@xxxxxxxxxx>
Date: Tue, 9 Jul 2013 15:05:15 +0400
Cc: linux-ext4@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, dchinner@xxxxxxxxxx, Dmitry Monakhov <dmonakhov@xxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Currenly large_fs check compare $SCRATCH_DEV_EMPTY_SPACE and $fs_size
which is not correct because total empty size required is 
$SCRATCH_DEV_EMPTY_SPACE + 50Gb
This path fix space detection, so check becomes valid for all situations.

Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx>
---
 common/rc |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/common/rc b/common/rc
index fe6bbfc..c44acea 100644
--- a/common/rc
+++ b/common/rc
@@ -306,16 +306,17 @@ _setup_large_xfs_fs()
 {
        fs_size=$1
        local tmp_dir=/tmp/
+       # Default free space in the FS is 50GB, but you can specify more via
+       # SCRATCH_DEV_EMPTY_SPACE
+       fs_empty_space=$((50*1024*1024*1024))
 
        [ "$LARGE_SCRATCH_DEV" != yes ] && return 0
-       [ -z "$SCRATCH_DEV_EMPTY_SPACE" ] && SCRATCH_DEV_EMPTY_SPACE=0
-       [ $SCRATCH_DEV_EMPTY_SPACE -ge $fs_size ] && return 0
+       [ -z "$SCRATCH_DEV_EMPTY_SPACE" ] && SCRATCH_DEV_EMPTY_SPACE=0  
+       fs_empty_space=$((fs_empty_space + $SCRATCH_DEV_EMPTY_SPACE))
+       [ $fs_empty_space -ge $fs_size ] && return 0
 
        # calculate the size of the file we need to allocate.
-       # Default free space in the FS is 50GB, but you can specify more via
-       # SCRATCH_DEV_EMPTY_SPACE
-       file_size=$(($fs_size - 50*1024*1024*1024))
-       file_size=$(($file_size - $SCRATCH_DEV_EMPTY_SPACE))
+       file_size=$(($fs_size - $fs_empty_space))
 
        # mount the filesystem, create the file, unmount it
        _scratch_mount 2>&1 >$tmp_dir/mnt.err
@@ -434,15 +435,17 @@ _setup_large_ext4_fs()
 {
        fs_size=$1
        local tmp_dir=/tmp/
-
-       [ "$LARGE_SCRATCH_DEV" != yes ] && return 0
-       [ -z "$SCRATCH_DEV_EMPTY_SPACE" ] && SCRATCH_DEV_EMPTY_SPACE=0
-       [ $SCRATCH_DEV_EMPTY_SPACE -ge $fs_size ] && return 0
-
        # Default free space in the FS is 50GB, but you can specify more via
        # SCRATCH_DEV_EMPTY_SPACE
-       space_to_consume=$(($fs_size - 50*1024*1024*1024 - 
$SCRATCH_DEV_EMPTY_SPACE))
+       fs_empty_space=$((50*1024*1024*1024))
 
+       [ "$LARGE_SCRATCH_DEV" != yes ] && return 0
+       [ -z "$SCRATCH_DEV_EMPTY_SPACE" ] && SCRATCH_DEV_EMPTY_SPACE=0  
+       fs_empty_space=$((fs_empty_space + $SCRATCH_DEV_EMPTY_SPACE))
+       [ $fs_empty_space -ge $fs_size ] && return 0
+
+       # calculate the size of the file we need to allocate.
+       space_to_consume=$(($fs_size - $fs_empty_space))
        # mount the filesystem and create 16TB - 4KB files until we consume
        # all the necessary space.
        _scratch_mount 2>&1 >$tmp_dir/mnt.err
-- 
1.7.1

<Prev in Thread] Current Thread [Next in Thread>