Hi Ming Lei, So this xfstests regression is also caused by the known bug in below commit? Full dmesg is attached. [ 449.390196] EXT4-fs (vdd): mounted filesystem with ordered data mode. Opts: acl,user_xattr [ 456.122979] EXT4-fs (vdd): Delayed block allocation failed for inode 13 at logical offset 367137 with max blocks 2048 with error 28 [ 456.129367] EXT4-fs (vdd): This should not happen!! Data will be lost [ 456.129367] [ 456.130985] EXT4-fs (vdd): Total free blocks count 0 [ 456.132330] EXT4-fs (vdd): Free/Dirty block details [ 456.133325] EXT4-fs (vdd): free_blocks=212443 [ 456.137180] EXT4-fs (vdd): dirty_blocks=208347 [ 456.138048] EXT4-fs (vdd): Block reservation details [ 456.139083] EXT4-fs (vdd): i_reserved_data_blocks=9222 [ 456.140076] EXT4-fs (vdd): i_reserved_meta_blocks=1111 [ 456.141047] EXT4-fs (vdd): i_allocated_meta_blocks=0 [ 460.182192] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: acl,user_xattr a9804b7b0aa2bf65b7cd1979306cbac4dcb6974f is the first bad commit commit a9804b7b0aa2bf65b7cd1979306cbac4dcb6974f Author: Ming Lei AuthorDate: Wed Jan 15 16:54:26 2014 +1100 Commit: Stephen Rothwell CommitDate: Wed Jan 15 16:54:26 2014 +1100 lib/percpu_counter.c: fix __percpu_counter_add() __percpu_counter_add() may be called in softirq/hardirq handler (such as, blk_mq_queue_exit() is typically called in hardirq/softirq handler), so we need to call this_cpu_add()(irq safe helper) to update percpu counter, otherwise counts may be lost. The patch fixes problem that 'rmmod null_blk' hangs in blk_cleanup_queue() because of miscounting of request_queue->mq_usage_counter. This patch is the v1 of previous one of "lib/percpu_counter.c: disable local irq when updating percpu couter", and takes Andrew's approach which may be more efficient for ARCHs(x86, s390) that have optimized this_cpu_add(). Signed-off-by: Ming Lei Cc: Paul Gortmaker Cc: Shaohua Li Cc: Jens Axboe Cc: Fan Du Signed-off-by: Andrew Morton lib/percpu_counter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)