On Thu, Aug 22, 2024 at 05:26:01PM +0200, Miklos Szeredi wrote: > On Sat, 27 Jul 2024 at 12:06, yangyun <yangyun50@xxxxxxxxxx> wrote: > > Since forget is not necessarily synchronous (In my opinion, the pre-this patch use of > > synchronous 'fuse_force_forget' is an error case and also not necessarily synchronous), > > what about just changing the 'fuse_force_forget' to be asynchronous? > > Even less impact would be to move the allocation inside > fuse_force_forget (make it GFP_NOFAIL) and still use the > fuse_queue_forget() function to send the forget as e.g. virtiofs > handles them differently from regular requests. fuse_force_forget uses the fuse_simple_request with args.force=true and it does not need allocation outside originally, so it is strange for what you said "move the allocation inside fuse_force_forge". I think what you mean is moving the allocation inside fuse_queue_forget, not fuse_force_forget. This can make sense. Thanks for your advice. I will update this patch. > > Thanks, > Miklos