Skip to content

Commit

Permalink
CIFS: Add SMB2 support for async requests
Browse files Browse the repository at this point in the history
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
  • Loading branch information
Pavel Shilovsky committed Jul 24, 2012
1 parent 4574084 commit c95b8ee
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
1 change: 1 addition & 0 deletions fs/cifs/smb2ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ smb2_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,

struct smb_version_operations smb21_operations = {
.setup_request = smb2_setup_request,
.setup_async_request = smb2_setup_async_request,
.check_receive = smb2_check_receive,
.add_credits = smb2_add_credits,
.set_credits = smb2_set_credits,
Expand Down
4 changes: 4 additions & 0 deletions fs/cifs/smb2proto.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ extern int smb2_check_receive(struct mid_q_entry *mid,
struct TCP_Server_Info *server, bool log_error);
extern int smb2_setup_request(struct cifs_ses *ses, struct kvec *iov,
unsigned int nvec, struct mid_q_entry **ret_mid);
extern int smb2_setup_async_request(struct TCP_Server_Info *server,
struct kvec *iov, unsigned int nvec,
struct mid_q_entry **ret_mid);
extern void smb2_echo_request(struct work_struct *work);

extern int smb2_query_path_info(const unsigned int xid, struct cifs_tcon *tcon,
struct cifs_sb_info *cifs_sb,
Expand Down
23 changes: 22 additions & 1 deletion fs/cifs/smb2transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,25 @@ smb2_setup_request(struct cifs_ses *ses, struct kvec *iov,
return rc;
}

/* BB add missing functions here */
int
smb2_setup_async_request(struct TCP_Server_Info *server, struct kvec *iov,
unsigned int nvec, struct mid_q_entry **ret_mid)
{
int rc = 0;
struct smb2_hdr *hdr = (struct smb2_hdr *)iov[0].iov_base;
struct mid_q_entry *mid;

smb2_seq_num_into_buf(server, hdr);

mid = smb2_mid_entry_alloc(hdr, server);
if (mid == NULL)
return -ENOMEM;

/* rc = smb2_sign_smb2(iov, nvec, server);
if (rc) {
DeleteMidQEntry(mid);
return rc;
}*/
*ret_mid = mid;
return rc;
}

0 comments on commit c95b8ee

Please sign in to comment.