diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-13 23:34:44 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-13 23:34:44 -0500 |
commit | ce5afed937f0a823d3b00c9459409c3f5f2fbd5d (patch) | |
tree | e2c488ad8a634812459fd733f87b673ccf1977d6 /fs | |
parent | ca81a62198e39ad9155f12725c269fcc2a9f1f8b (diff) | |
parent | ff4fa4a25a33f92b5653bb43add0c63bea98d464 (diff) |
Merge git://git.samba.org/sfrench/cifs-2.6
* git://git.samba.org/sfrench/cifs-2.6:
cifs: don't return error from standard_receive3 after marking response malformed
cifs: request oplock when doing open on lookup
cifs: fix error handling when cifscreds key payload is an error
Diffstat (limited to 'fs')
-rw-r--r-- | fs/cifs/connect.c | 9 | ||||
-rw-r--r-- | fs/cifs/dir.c | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 9c288653e6d6..602f77c304c9 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -773,10 +773,11 @@ standard_receive3(struct TCP_Server_Info *server, struct mid_q_entry *mid) | |||
773 | cifs_dump_mem("Bad SMB: ", buf, | 773 | cifs_dump_mem("Bad SMB: ", buf, |
774 | min_t(unsigned int, server->total_read, 48)); | 774 | min_t(unsigned int, server->total_read, 48)); |
775 | 775 | ||
776 | if (mid) | 776 | if (!mid) |
777 | handle_mid(mid, server, smb_buffer, length); | 777 | return length; |
778 | 778 | ||
779 | return length; | 779 | handle_mid(mid, server, smb_buffer, length); |
780 | return 0; | ||
780 | } | 781 | } |
781 | 782 | ||
782 | static int | 783 | static int |
@@ -2125,7 +2126,7 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses) | |||
2125 | down_read(&key->sem); | 2126 | down_read(&key->sem); |
2126 | upayload = key->payload.data; | 2127 | upayload = key->payload.data; |
2127 | if (IS_ERR_OR_NULL(upayload)) { | 2128 | if (IS_ERR_OR_NULL(upayload)) { |
2128 | rc = PTR_ERR(key); | 2129 | rc = upayload ? PTR_ERR(upayload) : -EINVAL; |
2129 | goto out_key_put; | 2130 | goto out_key_put; |
2130 | } | 2131 | } |
2131 | 2132 | ||
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index df8fecb5b993..63a196b97d50 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
@@ -492,7 +492,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, | |||
492 | { | 492 | { |
493 | int xid; | 493 | int xid; |
494 | int rc = 0; /* to get around spurious gcc warning, set to zero here */ | 494 | int rc = 0; /* to get around spurious gcc warning, set to zero here */ |
495 | __u32 oplock = 0; | 495 | __u32 oplock = enable_oplocks ? REQ_OPLOCK : 0; |
496 | __u16 fileHandle = 0; | 496 | __u16 fileHandle = 0; |
497 | bool posix_open = false; | 497 | bool posix_open = false; |
498 | struct cifs_sb_info *cifs_sb; | 498 | struct cifs_sb_info *cifs_sb; |