smb: client: fix missing mode bits for SMB symlinks
authorPaulo Alcantara <pc@manguebit.com>
Sun, 26 Nov 2023 02:55:10 +0000 (23:55 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Dec 2023 07:52:15 +0000 (08:52 +0100)
commit ef22bb800d967616c7638d204bc1b425beac7f5f upstream.

When instantiating inodes for SMB symlinks, add the mode bits from
@cifs_sb->ctx->file_mode as we already do for the other special files.

Cc: stable@vger.kernel.org
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/smb/client/inode.c

index c03a286..2fc3690 100644 (file)
@@ -748,7 +748,7 @@ bool cifs_reparse_point_to_fattr(struct cifs_sb_info *cifs_sb,
        case 0: /* SMB1 symlink */
        case IO_REPARSE_TAG_SYMLINK:
        case IO_REPARSE_TAG_NFS:
-               fattr->cf_mode = S_IFLNK;
+               fattr->cf_mode = S_IFLNK | cifs_sb->ctx->file_mode;
                fattr->cf_dtype = DT_LNK;
                break;
        default: