Whamcloud - gitweb
LU-10837 ldiskfs: skip bitmap check if block bitmap is uninitialized 20/31720/3
authorWang Shilong <wshilong@ddn.com>
Thu, 22 Mar 2018 05:59:55 +0000 (13:59 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 9 Apr 2018 19:45:09 +0000 (19:45 +0000)
commitf7672143843a86656eaed5b9a8b89ce171b99d7a
treeb54960510aca0562a6f02ac0e8492a11da7ef040
parent5b64d9fb0d5c5f292548c23e7841cc30f7a8423e
LU-10837 ldiskfs: skip bitmap check if block bitmap is uninitialized

See comments in ext4_free_clusters_after_init:
/* Return the number of free blocks in a block group.  It is used when
 * the block bitmap is uninitialized, so we can't just count the bits
 * in the bitmap. */
So extra check we enhanced here is wrong if this block group
bitmap is uninitialized, since we only check bitmaps here.

Further, Looking at EXT4_BG_BLOCK_UNINIT clear codes, Kernel
will reinit free_clusters_count when tried to clear the flag, so
extra check for uninited block bitmaps dosen't make much sense.

Let's skip uninited block bitmap check if EXT4_BG_BLOCK_UNINIT
is set, whatever free count group desc recorded is untrustable somehow

Change-Id: I845f2e0e17e53b7e3073399bd8b0a85e3db66ef8
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/31720
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
ldiskfs/kernel_patches/patches/rhel6.3/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel7/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/sles11sp2/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/sles12sp2/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/sles12sp3/ext4-mballoc-extra-checks.patch