diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index f737ba5cd82c..06197275956d 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -2640,7 +2640,13 @@ static noinline int create_smb2_pipe(struct ksmbd_work *work) out: switch (err) { case -EINVAL: - rsp->hdr.Status = STATUS_INVALID_PARAMETER; + /* + * Unknown pipe name: return STATUS_OBJECT_NAME_NOT_FOUND so + * macOS clients skip it gracefully. STATUS_INVALID_PARAMETER + * causes macOS Time Machine to abort the backup immediately + * (confirmed in ksmbd issue #502 / namjaejeon/ksmbd). + */ + rsp->hdr.Status = STATUS_OBJECT_NAME_NOT_FOUND; break; case -ENOSPC: case -ENOMEM: