CVE-2026-98451: smb: client: use finish_no_open() for non-regular inodes
In the Linux kernel, the following vulnerability has been resolved:
smb: client: use finishnoopen() for non-regular inodes
An OCREAT open can find an existing symlink or another non-regular inode. cifsatomicopen() calls finishopen() on it and attaches a cifsFileInfo. Symlink inodes have no CIFS release operation, so the dentry reference held by cifsFileInfo is leaked. FMODEOPENED also prevents the VFS from following the symlink.
Track whether cifsdocreate() returned an open server handle. For non-regular inodes, close the handle if present, remove the pending open, and call finishnoopen() so the VFS can continue the lookup. Do not set FMODECREATED unless a regular file was opened. For ONOFOLLOW with OREGULAR, return -ELOOP before the VFS's -EFTYPE check.
Defer closing a legacy POSIX handle on a non-regular inode until after inode lookup. This avoids closing it again if lookup fails.