Hello, On Wed, Sep 06, 2017 at 07:00:53PM -0700, Shaohua Li wrote: > diff --git a/drivers/block/loop.c b/drivers/block/loop.c > index 9d4545f..9850b27 100644 > --- a/drivers/block/loop.c > +++ b/drivers/block/loop.c > @@ -482,6 +482,8 @@ static void lo_rw_aio_complete(struct kiocb *iocb, long ret, long ret2) > { > struct loop_cmd *cmd = container_of(iocb, struct loop_cmd, iocb); > > + if (cmd->css) > + css_put(cmd->css); > cmd->ret = ret > 0 ? 0 : ret; > lo_rw_aio_do_completion(cmd); The fact that we're forwarding explicitly in loop still bothers me a bit. Can you please elaborate why we don't want to do this generically through aio? Thanks. -- tejun