OSDN Git Service

f2fs: wake up all waiters in f2fs_submit_discard_endio
authorChao Yu <yuchao0@huawei.com>
Fri, 19 May 2017 15:46:44 +0000 (23:46 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 13 Jul 2017 23:56:17 +0000 (16:56 -0700)
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@vger.kernel.org>
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index fcdc45c..66cbd3d 100644 (file)
@@ -752,7 +752,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);
 }