btrfs/079: fix failure to umount scratch fs due to running filefrag process
authorFilipe Manana <fdmanana@suse.com>
Tue, 10 Sep 2019 14:26:01 +0000 (15:26 +0100)
committerEryu Guan <guaneryu@gmail.com>
Sun, 15 Sep 2019 04:05:26 +0000 (12:05 +0800)
commit4f7f6f1cf1b206ab17197e38eb0d732e3f2f43eb
tree2f8a9605cc9e87917f891a83e511e3574256d783
parent332232b37f4da8e3ecd07f80574d3203c6541cfd
btrfs/079: fix failure to umount scratch fs due to running filefrag process

The test fails sporadically when trying to unmount the scratch filesystem
because a filefrag process is still running against a file that exists on
the scrach filesystem. This is because killing the subshell running the
fiemap_work() function does not wait for any filefrag process to complete
first. We need to set a trap for the SIGTERM signal on the subshell so
that it waits for any filefrag process before exitting.

The failure resulted in error messages like the following:

  btrfs/079 57s ... umount: /home/fdmanana/btrfs-tests/scratch_1: target is busy
          (In some cases useful info about processes that
           use the device is found by lsof(8) or fuser(1).)
  _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent
  (see /home/fdmanana/git/hub/xfstests/results//btrfs/079.full for details)

Fix this by adding a trap for SIGTERM.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/btrfs/079