diff options
| author | Henrique Carvalho <henrique.carvalho@suse.com> | 2024-11-14 16:28:49 -0300 |
|---|---|---|
| committer | Henrique Carvalho <henrique.carvalho@suse.com> | 2024-11-14 16:31:46 -0300 |
| commit | 189c2c20b77dd500a3706bee711acde11baf792e (patch) | |
| tree | 4eeca886e5e7b00dd7a1d95cb290ad4a2d77e4ef | |
| parent | 52077a5186d55d2619dd2d7ec503fd3de56d0aa0 (diff) | |
| download | linux-189c2c20b77dd500a3706bee711acde11baf792e.tar.gz linux-189c2c20b77dd500a3706bee711acde11baf792e.tar.bz2 linux-189c2c20b77dd500a3706bee711acde11baf792e.zip | |
smb: client: remove ->generate_signingkey ophw24-hc
Replace it for generic generate_smb_signingkey function.
Signed-off-by: Henrique Carvalho <henrique.carvalho@suse.com>
| -rw-r--r-- | fs/smb/client/cifsglob.h | 3 | ||||
| -rw-r--r-- | fs/smb/client/cifsproto.h | 2 | ||||
| -rw-r--r-- | fs/smb/client/smb2ops.c | 2 | ||||
| -rw-r--r-- | fs/smb/client/smb2pdu.c | 14 | ||||
| -rw-r--r-- | fs/smb/client/smb2transport.c | 15 |
5 files changed, 23 insertions, 13 deletions
diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h index cdda8e61ba98..ba47f14937ab 100644 --- a/fs/smb/client/cifsglob.h +++ b/fs/smb/client/cifsglob.h @@ -279,9 +279,6 @@ struct smb_version_operations { umode_t mode, struct cifs_tcon *tcon, const char *full_path, struct cifs_sb_info *cifs_sb); /* send create hardlink request */ - /* query remote filesystem */ - int (*generate_signingkey)(struct cifs_ses *ses, - struct TCP_Server_Info *server); int (*calc_signature)(struct smb_rqst *, struct TCP_Server_Info *, bool allocate_crypto); /* parse lease context buffer and return oplock/epoch info */ diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h index daadff2f7663..bdb1652f0859 100644 --- a/fs/smb/client/cifsproto.h +++ b/fs/smb/client/cifsproto.h @@ -324,6 +324,8 @@ extern int generate_smb30signingkey(struct cifs_ses *ses, struct TCP_Server_Info *server); extern int generate_smb311signingkey(struct cifs_ses *ses, struct TCP_Server_Info *server); +extern int generate_smb_signingkey(struct cifs_ses *ses, + struct TCP_Server_Info *server); extern void cifs_autodisable_serverino(struct cifs_sb_info *cifs_sb); extern bool couldbe_mf_symlink(const struct cifs_fattr *fattr); diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c index b0189727de40..ac55a1b76ab2 100644 --- a/fs/smb/client/smb2ops.c +++ b/fs/smb/client/smb2ops.c @@ -5088,7 +5088,6 @@ struct smb_version_operations smb21_operations = { struct smb_version_operations smb30_operations = { /* WSL tags introduced long after smb2.1, enable for SMB3, 3.11 only */ - .generate_signingkey = generate_smb30signingkey, .calc_signature = smb3_calc_signature, .parse_lease_buf = smb3_parse_lease_buf, .duplicate_extents = smb2_duplicate_extents, @@ -5099,7 +5098,6 @@ struct smb_version_operations smb30_operations = { }; struct smb_version_operations smb311_operations = { - .generate_signingkey = generate_smb311signingkey, .calc_signature = smb3_calc_signature, .parse_lease_buf = smb3_parse_lease_buf, .duplicate_extents = smb2_duplicate_extents, diff --git a/fs/smb/client/smb2pdu.c b/fs/smb/client/smb2pdu.c index 9ed77efb9b62..15c0901ce9bf 100644 --- a/fs/smb/client/smb2pdu.c +++ b/fs/smb/client/smb2pdu.c @@ -1574,14 +1574,12 @@ SMB2_sess_establish_session(struct SMB2_sess_data *sess_data) struct TCP_Server_Info *server = sess_data->server; cifs_server_lock(server); - if (server->ops->generate_signingkey) { - rc = server->ops->generate_signingkey(ses, server); - if (rc) { - cifs_dbg(FYI, - "SMB3 session key generation failed\n"); - cifs_server_unlock(server); - return rc; - } + rc = generate_smb_signingkey(ses, server); + if (rc) { + cifs_dbg(FYI, + "SMB3 session key generation failed\n"); + cifs_server_unlock(server); + return rc; } if (!server->session_estab) { server->sequence_number = 0x2; diff --git a/fs/smb/client/smb2transport.c b/fs/smb/client/smb2transport.c index a42654498abe..d6c7a6276f3a 100644 --- a/fs/smb/client/smb2transport.c +++ b/fs/smb/client/smb2transport.c @@ -557,6 +557,21 @@ generate_smb311signingkey(struct cifs_ses *ses, return generate_smb3signingkey(ses, server, &triplet); } +int +generate_smb_signingkey(struct cifs_ses *ses, + struct TCP_Server_Info *server) +{ + u16 protocol_id = server->vals->protocol_id; + if (protocol_id >= SMB311_PROT_ID) + return generate_smb311signingkey(ses, server); + else if (protocol_id >= SMB30_PROT_ID) + return generate_smb30signingkey(ses, server); + else + pr_warn_once("unsupported protocol id 0x%x\n", protocol_id); + return -ENOTSUPP; +} + + int smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, bool allocate_crypto) |
