diff options
author | Shaohua Li <shli@kernel.org> | 2013-12-31 11:38:50 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2014-01-30 12:57:25 -0700 |
commit | f0276924fa35a3607920a58cf5d878212824b951 (patch) | |
tree | 5759cef09f3ba6b2f206ace779fef298a8b9d7be /fs/dcookies.c | |
parent | d835502f3dacad1638d516ab156d66f0ba377cf5 (diff) | |
download | linux-stable-f0276924fa35a3607920a58cf5d878212824b951.tar.gz linux-stable-f0276924fa35a3607920a58cf5d878212824b951.tar.bz2 linux-stable-f0276924fa35a3607920a58cf5d878212824b951.zip |
blk-mq: Don't reserve a tag for flush request
Reserving a tag (request) for flush to avoid dead lock is a overkill. A
tag is valuable resource. We can track the number of flush requests and
disallow having too many pending flush requests allocated. With this
patch, blk_mq_alloc_request_pinned() could do a busy nop (but not a dead
loop) if too many pending requests are allocated and new flush request
is allocated. But this should not be a problem, too many pending flush
requests are very rare case.
I verified this can fix the deadlock caused by too many pending flush
requests.
Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/dcookies.c')
0 files changed, 0 insertions, 0 deletions