== create files == waiter shows up in ioctl offline waiting should be empty: 0 offline waiting should now have one known entry: == multiple waiters on same block listed once offline waiting still has one known entry: == different blocks show up offline waiting now has two known entries: == staging wakes everyone offline waiting should be empty again: 0 == interruption does no harm offline waiting should now have one known entry: offline waiting should be empty again: 0 == EIO injection for waiting readers works offline waiting should now have two known entries: 2 data_wait_err found 2 waiters. offline waiting should now have 0 known entries: 0 dd: error reading '/mnt/test/test/offline-extent-waiting/dir/file': Input/output error 0+0 records in 0+0 records out dd: error reading '/mnt/test/test/offline-extent-waiting/dir/file': Input/output error 0+0 records in 0+0 records out offline waiting should be empty again: 0 == readahead while offline does no harm == waiting on interesting blocks works offline waiting is empty at block 0 0 offline waiting is empty at block 1 0 offline waiting is empty at block 128 0 offline waiting is empty at block 129 0 offline waiting is empty at block 254 0 offline waiting is empty at block 255 0 == contents match when staging blocks forward == contents match when staging blocks backwards == truncate to same size doesn't wait offline wating should be empty: 0 == truncating does wait truncate should be waiting for first block: truncate should no longer be waiting: 0 == writing waits should be waiting for write == cleanup