From: Chao Yu <yuchao0@xxxxxxxxxx> There could be more than one waiter waiting discard IO completion, so we need use complete_all() instead of complete() in f2fs_submit_discard_endio to avoid hungtask. Fixes: ec9895add2c5 ("f2fs: don't hold cmd_lock during waiting discard command") Cc: <stable@xxxxxxxxxxxxxxx> Signed-off-by: Chao Yu <yuchao0@xxxxxxxxxx> --- fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index d310b82caef1..2b11119d9071 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -751,7 +751,7 @@ static void f2fs_submit_discard_endio(struct bio *bio) dc->error = bio->bi_error; dc->state = D_DONE; - complete(&dc->wait); + complete_all(&dc->wait); bio_put(bio); } -- 2.12.2.575.gb14f27f