Setting: Two iscsi disks attached to host. They both joined to signle btrfs filesystem. Filesystem mounted and in use. One disk is disappear (iscsiadm -m session -r XX -u). After IO error filesystem unmounted. Expected behavior: unmounted damaged filesystem. Actual behavior: Hunged umount/sync in 'D' state, traces in dmesg: [11365.586566] INFO: task btrfs-flush_del:5953 blocked for more than 120 seconds. [11365.608999] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [11365.630485] btrfs-flush_del D ffff88022fa44620 0 5953 2 0x00000000 [11365.641611] ffff880232ff9d58 0000000000000046 ffff880232ff9d18 ffff88023fd53ec0 [11365.663912] ffff880232ff9fd8 ffff880232ff9fd8 ffff880232ff9fd8 0000000000013ec0 [11365.688287] ffff880234160000 ffff88022f5d0000 ffff880232ff9d68 ffff88013c2f1020 [11365.712285] Call Trace: [11365.723333] [<ffffffff816f41c9>] schedule+0x29/0x70 [11365.736150] [<ffffffffa013fc65>] btrfs_start_ordered_extent+0x85/0x130 [btrfs] [11365.760033] [<ffffffff8107fde0>] ? add_wait_queue+0x60/0x60 [11365.771171] [<ffffffffa013fd39>] btrfs_run_ordered_extent_work+0x29/0x40 [btrfs] [11365.793156] [<ffffffffa0153d00>] worker_loop+0xa0/0x320 [btrfs] [11365.804116] [<ffffffffa0153c60>] ? check_pending_worker_creates.isra.1+0xf0/0xf0 [btrfs] [11365.827620] [<ffffffff8107f220>] kthread+0xc0/0xd0 [11365.839398] [<ffffffff8107f160>] ? flush_kthread_worker+0xb0/0xb0 [11365.850959] [<ffffffff816fdeac>] ret_from_fork+0x7c/0xb0 [11365.862343] [<ffffffff8107f160>] ? flush_kthread_worker+0xb0/0xb0
upd: there is no need for second drive. Just one drive via iscsi with btrfs on it disappear - and umount/sync will never finish.
This is a semi-automated bugzilla cleanup, report is against an old kernel version. If the problem still happens, please open a new bug. Thanks.