Re: [PATCH 2/2] smb/server: preserve compound prefix for async interim responses
Namjae Jeon <[email protected]>
| Newsgroups | org.kernel.vger.linux-cifs |
|---|---|
| Message-ID | <CAKYAXd8F_2ZTFc5eUmo2xS_irPnsmFmEq9OKhGSSY-Ra=b882w@mail.gmail.com> |
On Thu, Jul 2, 2026 at 8:06 PM ChenXiaoSong <[email protected]> wrote: > > From: ChenXiaoSong <[email protected]> > > Windows clients can issue a related compound request such as CREATE > followed by CHANGE_NOTIFY. ksmbd defers CHANGE_NOTIFY and sends > STATUS_PENDING through the async interim response path. That path only > built a response for the current command, so responses generated for > earlier commands in the compound chain were dropped. > > This means the client never receives the CREATE response that contains > the file id used by the pending notify request. Windows Explorer can > then stall when navigating away from the directory until the connection > is torn down and the pending notify requests are cleaned up. > > When sending STATUS_PENDING for an async command, copy the completed > compound response prefix before appending the async interim error > response. Final async completions such as STATUS_CANCELLED and > STATUS_NOTIFY_CLEANUP remain standalone async responses. > > Signed-off-by: ChenXiaoSong <[email protected]> Could you please take a look at the three smbtorture failures caused by this patch? smb2.compound.compound-padding smb2.compound_async.write_write smb2.compound_async.read_read Thanks.