On Thu, Mar 22, 2018 at 06:24:10PM +0100, Christoph Hellwig wrote: > -static void aio_complete(struct aio_kiocb *iocb, long res, long res2) > +static bool aio_complete(struct aio_kiocb *iocb, long res, long res2, > + unsigned complete_flags) Looks like all callers are following that with "if returned true, fput(something)". Does it really make any sense to keep that struct file * in different fields? Wait a sec... What ordering do we want for * call(s) of ->ki_complete * call (if any) of ->ki_cancel * dropping reference to struct file and what are the expected call chains for all of those? -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html