diff options
author | Benjamin LaHaise <bcrl@kvack.org> | 2013-07-31 10:34:18 -0400 |
---|---|---|
committer | Benjamin LaHaise <bcrl@kvack.org> | 2013-07-31 10:34:18 -0400 |
commit | 6878ea72a5d1aa6caae86449975a50b7fe9abed5 (patch) | |
tree | 9750b6a7f37d340227399ff282a6aefb6892cd98 /fs/aio.c | |
parent | db446a08c23d5475e6b08c87acca79ebb20f283c (diff) | |
download | lwn-6878ea72a5d1aa6caae86449975a50b7fe9abed5.tar.gz lwn-6878ea72a5d1aa6caae86449975a50b7fe9abed5.zip |
aio: be defensive to ensure request batching is non-zero instead of BUG_ON()
In the event that an overflow/underflow occurs while calculating req_batch,
clamp the minimum at 1 request instead of doing a BUG_ON().
Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
Diffstat (limited to 'fs/aio.c')
-rw-r--r-- | fs/aio.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -576,7 +576,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events) atomic_set(&ctx->reqs_available, ctx->nr_events - 1); ctx->req_batch = (ctx->nr_events - 1) / (num_possible_cpus() * 4); - BUG_ON(!ctx->req_batch); + if (ctx->req_batch < 1) + ctx->req_batch = 1; err = ioctx_add_table(ctx, mm); if (err) |