Revision 289454ad26a2d752e04b07234a175feda9ec0f4e authored by Naohiro Aota on 05 January 2015, 16:01:03 UTC, committed by Chris Mason on 03 February 2015, 03:24:51 UTC
After submit_one_bio(), `bio' can go away. However submit_extent_page()
leave `bio' referable if submit_one_bio() failed (e.g. -ENOMEM on OOM).
It will cause invalid paging request when submit_extent_page() is called
next time.

I reproduced ENOMEM case with the following script (need
CONFIG_FAIL_PAGE_ALLOC, and CONFIG_FAULT_INJECTION_DEBUG_FS).

  #!/bin/bash

  dmesgout=dmesg.txt
  start=100000
  end=300000
  step=1000

  # btrfs options
  device=/dev/vdb1
  directory=/mnt/btrfs

  # fault-injection options
  percent=100
  times=3

  mkdir -p $directory || exit 1
  mount -o compress $device $directory || exit 1

  rm -f $directory/file || exit 1
  dd if=/dev/zero of=$directory/file bs=1M count=512 || exit 1

  for interval in `seq $start $step $end`; do
          dmesg -C
          echo 1 > /proc/sys/vm/drop_caches
          sync
          export FAILCMD_TYPE=fail_page_alloc
          ./failcmd.sh -p $percent -t $times -i $interval \
                  --ignore-gfp-highmem=N --ignore-gfp-wait=N --min-order=0 \
                  -- \
                  cat $directory/file > /dev/null
          dmesg > ${dmesgout}
          if grep -q BUG: ${dmesgout}; then
                  cat ${dmesgout}
                  exit 1
          fi
  done

  umount $directory
  exit 0

Signed-off-by: Naohiro Aota <naota@elisp.net>
Tested-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
1 parent de554a4
History
File Mode Size
00-INDEX -rw-r--r-- 820 bytes
3270.ChangeLog -rw-r--r-- 1.8 KB
3270.txt -rw-r--r-- 10.7 KB
CommonIO -rw-r--r-- 5.0 KB
DASD -rw-r--r-- 3.3 KB
Debugging390.txt -rw-r--r-- 80.2 KB
cds.txt -rw-r--r-- 20.5 KB
config3270.sh -rw-r--r-- 2.0 KB
driver-model.txt -rw-r--r-- 9.8 KB
kvm.txt -rw-r--r-- 5.5 KB
monreader.txt -rw-r--r-- 8.4 KB
qeth.txt -rw-r--r-- 1.8 KB
s390dbf.txt -rw-r--r-- 23.6 KB
zfcpdump.txt -rw-r--r-- 2.6 KB

back to top