diff options
Diffstat (limited to 'fs/cifs/misc.c')
-rw-r--r-- | fs/cifs/misc.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index c29d1aa2c54f..e2552d2b2e42 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c | |||
@@ -306,8 +306,6 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ , | |||
306 | const struct cifs_tcon *treeCon, int word_count | 306 | const struct cifs_tcon *treeCon, int word_count |
307 | /* length of fixed section (word count) in two byte units */) | 307 | /* length of fixed section (word count) in two byte units */) |
308 | { | 308 | { |
309 | struct list_head *temp_item; | ||
310 | struct cifs_ses *ses; | ||
311 | char *temp = (char *) buffer; | 309 | char *temp = (char *) buffer; |
312 | 310 | ||
313 | memset(temp, 0, 256); /* bigger than MAX_CIFS_HDR_SIZE */ | 311 | memset(temp, 0, 256); /* bigger than MAX_CIFS_HDR_SIZE */ |
@@ -337,51 +335,6 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ , | |||
337 | /* Uid is not converted */ | 335 | /* Uid is not converted */ |
338 | buffer->Uid = treeCon->ses->Suid; | 336 | buffer->Uid = treeCon->ses->Suid; |
339 | buffer->Mid = GetNextMid(treeCon->ses->server); | 337 | buffer->Mid = GetNextMid(treeCon->ses->server); |
340 | if (multiuser_mount != 0) { | ||
341 | /* For the multiuser case, there are few obvious technically */ | ||
342 | /* possible mechanisms to match the local linux user (uid) */ | ||
343 | /* to a valid remote smb user (smb_uid): */ | ||
344 | /* 1) Query Winbind (or other local pam/nss daemon */ | ||
345 | /* for userid/password/logon_domain or credential */ | ||
346 | /* 2) Query Winbind for uid to sid to username mapping */ | ||
347 | /* and see if we have a matching password for existing*/ | ||
348 | /* session for that user perhas getting password by */ | ||
349 | /* adding a new pam_cifs module that stores passwords */ | ||
350 | /* so that the cifs vfs can get at that for all logged*/ | ||
351 | /* on users */ | ||
352 | /* 3) (Which is the mechanism we have chosen) */ | ||
353 | /* Search through sessions to the same server for a */ | ||
354 | /* a match on the uid that was passed in on mount */ | ||
355 | /* with the current processes uid (or euid?) and use */ | ||
356 | /* that smb uid. If no existing smb session for */ | ||
357 | /* that uid found, use the default smb session ie */ | ||
358 | /* the smb session for the volume mounted which is */ | ||
359 | /* the same as would be used if the multiuser mount */ | ||
360 | /* flag were disabled. */ | ||
361 | |||
362 | /* BB Add support for establishing new tCon and SMB Session */ | ||
363 | /* with userid/password pairs found on the smb session */ | ||
364 | /* for other target tcp/ip addresses BB */ | ||
365 | if (current_fsuid() != treeCon->ses->linux_uid) { | ||
366 | cFYI(1, "Multiuser mode and UID " | ||
367 | "did not match tcon uid"); | ||
368 | spin_lock(&cifs_tcp_ses_lock); | ||
369 | list_for_each(temp_item, &treeCon->ses->server->smb_ses_list) { | ||
370 | ses = list_entry(temp_item, struct cifs_ses, smb_ses_list); | ||
371 | if (ses->linux_uid == current_fsuid()) { | ||
372 | if (ses->server == treeCon->ses->server) { | ||
373 | cFYI(1, "found matching uid substitute right smb_uid"); | ||
374 | buffer->Uid = ses->Suid; | ||
375 | break; | ||
376 | } else { | ||
377 | /* BB eventually call cifs_setup_session here */ | ||
378 | cFYI(1, "local UID found but no smb sess with this server exists"); | ||
379 | } | ||
380 | } | ||
381 | } | ||
382 | spin_unlock(&cifs_tcp_ses_lock); | ||
383 | } | ||
384 | } | ||
385 | } | 338 | } |
386 | if (treeCon->Flags & SMB_SHARE_IS_IN_DFS) | 339 | if (treeCon->Flags & SMB_SHARE_IS_IN_DFS) |
387 | buffer->Flags2 |= SMBFLG2_DFS; | 340 | buffer->Flags2 |= SMBFLG2_DFS; |
@@ -700,22 +653,3 @@ backup_cred(struct cifs_sb_info *cifs_sb) | |||
700 | 653 | ||
701 | return false; | 654 | return false; |
702 | } | 655 | } |
703 | |||
704 | void | ||
705 | cifs_add_credits(struct TCP_Server_Info *server, const unsigned int add) | ||
706 | { | ||
707 | spin_lock(&server->req_lock); | ||
708 | server->credits += add; | ||
709 | server->in_flight--; | ||
710 | spin_unlock(&server->req_lock); | ||
711 | wake_up(&server->request_q); | ||
712 | } | ||
713 | |||
714 | void | ||
715 | cifs_set_credits(struct TCP_Server_Info *server, const int val) | ||
716 | { | ||
717 | spin_lock(&server->req_lock); | ||
718 | server->credits = val; | ||
719 | server->oplocks = val > 1 ? enable_oplocks : false; | ||
720 | spin_unlock(&server->req_lock); | ||
721 | } | ||