If we can't find an encryption key that means that there was a reconnect and an SMB session associated with the packet is gone. If this happens during the writeback (as in the trace above) I would rather retry instead of returning an error. I think we should use -EAGAIN instead, so the upper layer will attempt to retry the write request if such an error occurs. -- Best regards, Pavel Shilovsky ср, 14 апр. 2021 г. в 12:49, Steve French <smfrench@xxxxxxxxx>: > > tentatively merged into cifs-2.6.git for-next pending more reviews > from Pavel etc and testing > > On Wed, Apr 14, 2021 at 1:56 AM Paul Aurich <paul@xxxxxxxxxxxxxx> wrote: > > > > Avoid a warning if the error percolates back up: > > > > [440700.376476] CIFS VFS: \\otters.example.com crypt_message: Could not get encryption key > > [440700.386947] ------------[ cut here ]------------ > > [440700.386948] err = 1 > > [440700.386977] WARNING: CPU: 11 PID: 2733 at /build/linux-hwe-5.4-p6lk6L/linux-hwe-5.4-5.4.0/lib/errseq.c:74 errseq_set+0x5c/0x70 > > ... > > [440700.397304] CPU: 11 PID: 2733 Comm: tar Tainted: G OE 5.4.0-70-generic #78~18.04.1-Ubuntu > > ... > > [440700.397334] Call Trace: > > [440700.397346] __filemap_set_wb_err+0x1a/0x70 > > [440700.397419] cifs_writepages+0x9c7/0xb30 [cifs] > > [440700.397426] do_writepages+0x4b/0xe0 > > [440700.397444] __filemap_fdatawrite_range+0xcb/0x100 > > [440700.397455] filemap_write_and_wait+0x42/0xa0 > > [440700.397486] cifs_setattr+0x68b/0xf30 [cifs] > > [440700.397493] notify_change+0x358/0x4a0 > > [440700.397500] utimes_common+0xe9/0x1c0 > > [440700.397510] do_utimes+0xc5/0x150 > > [440700.397520] __x64_sys_utimensat+0x88/0xd0 > > > > Fixes: 61cfac6f267d ("CIFS: Fix possible use after free in demultiplex thread") > > Signed-off-by: Paul Aurich <paul@xxxxxxxxxxxxxx> > > CC: stable@xxxxxxxxxxxxxxx > > --- > > fs/cifs/smb2ops.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > > index 61214b23c57f..caa5432a5ed1 100644 > > --- a/fs/cifs/smb2ops.c > > +++ b/fs/cifs/smb2ops.c > > @@ -4418,7 +4418,7 @@ smb2_get_enc_key(struct TCP_Server_Info *server, __u64 ses_id, int enc, u8 *key) > > } > > spin_unlock(&cifs_tcp_ses_lock); > > > > - return 1; > > + return -ENOENT; > > } > > /* > > * Encrypt or decrypt @rqst message. @rqst[0] has the following format: > > -- > > 2.31.0 > > > > > -- > Thanks, > > Steve