Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag '6.11-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client fixes from Steve French:

- DFS fix

- fix for security flags for requiring encryption

- minor cleanup

* tag '6.11-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath
Fix spelling errors in Server Message Block
smb3: fix setting SecurityFlags when encryption is required

+22 -18
+1 -1
Documentation/admin-guide/cifs/usage.rst
··· 742 742 may use NTLMSSP 0x00080 743 743 must use NTLMSSP 0x80080 744 744 seal (packet encryption) 0x00040 745 - must seal (not implemented yet) 0x40040 745 + must seal 0x40040 746 746 747 747 cifsFYI If set to non-zero value, additional debug information 748 748 will be logged to the system error log. This field
+1 -1
fs/smb/client/cifs_debug.c
··· 1072 1072 static void 1073 1073 cifs_security_flags_handle_must_flags(unsigned int *flags) 1074 1074 { 1075 - unsigned int signflags = *flags & CIFSSEC_MUST_SIGN; 1075 + unsigned int signflags = *flags & (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_SEAL); 1076 1076 1077 1077 if ((*flags & CIFSSEC_MUST_KRB5) == CIFSSEC_MUST_KRB5) 1078 1078 *flags = CIFSSEC_MUST_KRB5;
+6 -6
fs/smb/client/cifsglob.h
··· 345 345 /* connect to a server share */ 346 346 int (*tree_connect)(const unsigned int, struct cifs_ses *, const char *, 347 347 struct cifs_tcon *, const struct nls_table *); 348 - /* close tree connecion */ 348 + /* close tree connection */ 349 349 int (*tree_disconnect)(const unsigned int, struct cifs_tcon *); 350 350 /* get DFS referrals */ 351 351 int (*get_dfs_refer)(const unsigned int, struct cifs_ses *, ··· 816 816 * Protected by @refpath_lock and @srv_lock. The @refpath_lock is 817 817 * mostly used for not requiring a copy of @leaf_fullpath when getting 818 818 * cached or new DFS referrals (which might also sleep during I/O). 819 - * While @srv_lock is held for making string and NULL comparions against 819 + * While @srv_lock is held for making string and NULL comparisons against 820 820 * both fields as in mount(2) and cache refresh. 821 821 * 822 822 * format: \\HOST\SHARE[\OPTIONAL PATH] ··· 1881 1881 #define CIFSSEC_MAY_SIGN 0x00001 1882 1882 #define CIFSSEC_MAY_NTLMV2 0x00004 1883 1883 #define CIFSSEC_MAY_KRB5 0x00008 1884 - #define CIFSSEC_MAY_SEAL 0x00040 /* not supported yet */ 1884 + #define CIFSSEC_MAY_SEAL 0x00040 1885 1885 #define CIFSSEC_MAY_NTLMSSP 0x00080 /* raw ntlmssp with ntlmv2 */ 1886 1886 1887 1887 #define CIFSSEC_MUST_SIGN 0x01001 ··· 1891 1891 #define CIFSSEC_MUST_NTLMV2 0x04004 1892 1892 #define CIFSSEC_MUST_KRB5 0x08008 1893 1893 #ifdef CONFIG_CIFS_UPCALL 1894 - #define CIFSSEC_MASK 0x8F08F /* flags supported if no weak allowed */ 1894 + #define CIFSSEC_MASK 0xCF0CF /* flags supported if no weak allowed */ 1895 1895 #else 1896 - #define CIFSSEC_MASK 0x87087 /* flags supported if no weak allowed */ 1896 + #define CIFSSEC_MASK 0xC70C7 /* flags supported if no weak allowed */ 1897 1897 #endif /* UPCALL */ 1898 - #define CIFSSEC_MUST_SEAL 0x40040 /* not supported yet */ 1898 + #define CIFSSEC_MUST_SEAL 0x40040 1899 1899 #define CIFSSEC_MUST_NTLMSSP 0x80080 /* raw ntlmssp with ntlmv2 */ 1900 1900 1901 1901 #define CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_NTLMSSP | CIFSSEC_MAY_SEAL)
+6 -5
fs/smb/client/misc.c
··· 352 352 * on simple responses (wct, bcc both zero) 353 353 * in particular have seen this on 354 354 * ulogoffX and FindClose. This leaves 355 - * one byte of bcc potentially unitialized 355 + * one byte of bcc potentially uninitialized 356 356 */ 357 357 /* zero rest of bcc */ 358 358 tmp[sizeof(struct smb_hdr)+1] = 0; ··· 1234 1234 const char *full_path, 1235 1235 bool *islink) 1236 1236 { 1237 + struct TCP_Server_Info *server = tcon->ses->server; 1237 1238 struct cifs_ses *ses = tcon->ses; 1238 1239 size_t len; 1239 1240 char *path; ··· 1251 1250 !is_tcon_dfs(tcon)) 1252 1251 return 0; 1253 1252 1254 - spin_lock(&tcon->tc_lock); 1255 - if (!tcon->origin_fullpath) { 1256 - spin_unlock(&tcon->tc_lock); 1253 + spin_lock(&server->srv_lock); 1254 + if (!server->leaf_fullpath) { 1255 + spin_unlock(&server->srv_lock); 1257 1256 return 0; 1258 1257 } 1259 - spin_unlock(&tcon->tc_lock); 1258 + spin_unlock(&server->srv_lock); 1260 1259 1261 1260 /* 1262 1261 * Slow path - tcon is DFS and @full_path has prefix path, so attempt
+3
fs/smb/client/smb2pdu.c
··· 82 82 if (tcon->seal && 83 83 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) 84 84 return 1; 85 + if (((global_secflags & CIFSSEC_MUST_SEAL) == CIFSSEC_MUST_SEAL) && 86 + (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) 87 + return 1; 85 88 return 0; 86 89 } 87 90
+4 -4
fs/smb/client/smbdirect.c
··· 406 406 else 407 407 response = get_empty_queue_buffer(info); 408 408 if (!response) { 409 - /* now switch to emtpy packet queue */ 409 + /* now switch to empty packet queue */ 410 410 if (use_receive_queue) { 411 411 use_receive_queue = 0; 412 412 continue; ··· 618 618 619 619 /* 620 620 * Test if FRWR (Fast Registration Work Requests) is supported on the device 621 - * This implementation requries FRWR on RDMA read/write 621 + * This implementation requires FRWR on RDMA read/write 622 622 * return value: true if it is supported 623 623 */ 624 624 static bool frwr_is_supported(struct ib_device_attr *attrs) ··· 2177 2177 * MR available in the list. It may access the list while the 2178 2178 * smbd_mr_recovery_work is recovering the MR list. This doesn't need a lock 2179 2179 * as they never modify the same places. However, there may be several CPUs 2180 - * issueing I/O trying to get MR at the same time, mr_list_lock is used to 2180 + * issuing I/O trying to get MR at the same time, mr_list_lock is used to 2181 2181 * protect this situation. 2182 2182 */ 2183 2183 static struct smbd_mr *get_mr(struct smbd_connection *info) ··· 2311 2311 /* 2312 2312 * There is no need for waiting for complemtion on ib_post_send 2313 2313 * on IB_WR_REG_MR. Hardware enforces a barrier and order of execution 2314 - * on the next ib_post_send when we actaully send I/O to remote peer 2314 + * on the next ib_post_send when we actually send I/O to remote peer 2315 2315 */ 2316 2316 rc = ib_post_send(info->id->qp, &reg_wr->wr, NULL); 2317 2317 if (!rc)
+1 -1
fs/smb/client/transport.c
··· 1289 1289 out: 1290 1290 /* 1291 1291 * This will dequeue all mids. After this it is important that the 1292 - * demultiplex_thread will not process any of these mids any futher. 1292 + * demultiplex_thread will not process any of these mids any further. 1293 1293 * This is prevented above by using a noop callback that will not 1294 1294 * wake this thread except for the very last PDU. 1295 1295 */