On 20.05.2016 16:30, Andrey Ryabinin wrote: > fs.aio-nr accounts number of aio events requested by user via io_setup() > syscall. The kernel usually creates more events than was requested. > CRIU doesn't care about the number of requested events, it cares only > about created events. So while restoring the process CRIU requests > in io_setup() the number of actually created events. This leads > to inconsistent value of fs.aio-nr after the restore. > > Let's account in fs.aio-nr a number of created events, not requested. > > https://jira.sw.ru/browse/PSBM-47209 > > Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com>
Acked-by: Kirill Tkhai <ktk...@virtuozzo.com> > --- > fs/aio.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/aio.c b/fs/aio.c > index 29d02ab..19ebcd1 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -633,12 +633,12 @@ static struct kioctx *ioctx_alloc(unsigned nr_events) > > /* limit the number of system wide aios */ > spin_lock(&ve->aio_nr_lock); > - if (ve->aio_nr + nr_events > ve->aio_max_nr || > - ve->aio_nr + nr_events < ve->aio_nr) { > + if (ve->aio_nr + ctx->nr_events > ve->aio_max_nr || > + ve->aio_nr + ctx->nr_events < ve->aio_nr) { > spin_unlock(&ve->aio_nr_lock); > goto out_cleanup; > } > - ve->aio_nr += ctx->max_reqs; > + ve->aio_nr += ctx->nr_events; > spin_unlock(&ve->aio_nr_lock); > > /* now link into global list. */ > _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel