diff options
author | Steve French <sfrench@us.ibm.com> | 2007-04-25 07:46:06 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-04-25 07:46:06 -0400 |
commit | cbac3cba66ab51492da53e7bf4f38da872408065 (patch) | |
tree | 4f6531413c4063a879b96fb4e89805f5ac982773 /fs/cifs/cifssmb.c | |
parent | 2dd29d3133ad4c7926ea03b8431e604373c4ad65 (diff) |
[CIFS] New CIFS POSIX mkdir performance improvement (part 2)
Fix incorrect parsing of return data
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r-- | fs/cifs/cifssmb.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index a7d3d8e5c6c5..14de58fa1437 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -1008,9 +1008,12 @@ PsxCreat: | |||
1008 | if(cpu_to_le32(FILE_CREATE) == psx_rsp->CreateAction) | 1008 | if(cpu_to_le32(FILE_CREATE) == psx_rsp->CreateAction) |
1009 | *pOplock |= CIFS_CREATE_ACTION; | 1009 | *pOplock |= CIFS_CREATE_ACTION; |
1010 | /* check to make sure response data is there */ | 1010 | /* check to make sure response data is there */ |
1011 | if(psx_rsp->ReturnedLevel != SMB_QUERY_FILE_UNIX_BASIC) | 1011 | if(psx_rsp->ReturnedLevel != SMB_QUERY_FILE_UNIX_BASIC) { |
1012 | pRetData->Type = -1; /* unknown */ | 1012 | pRetData->Type = -1; /* unknown */ |
1013 | else { | 1013 | #ifdef CONFIG_CIFS_DEBUG2 |
1014 | cFYI(1,("unknown type")); | ||
1015 | #endif | ||
1016 | } else { | ||
1014 | if(pSMBr->ByteCount < sizeof(OPEN_PSX_RSP) | 1017 | if(pSMBr->ByteCount < sizeof(OPEN_PSX_RSP) |
1015 | + sizeof(FILE_UNIX_BASIC_INFO)) { | 1018 | + sizeof(FILE_UNIX_BASIC_INFO)) { |
1016 | cERROR(1,("Open response data too small")); | 1019 | cERROR(1,("Open response data too small")); |
@@ -1018,7 +1021,7 @@ PsxCreat: | |||
1018 | goto psx_create_err; | 1021 | goto psx_create_err; |
1019 | } | 1022 | } |
1020 | memcpy((char *) pRetData, | 1023 | memcpy((char *) pRetData, |
1021 | (char *)&psx_rsp + sizeof(OPEN_PSX_RSP), | 1024 | (char *)psx_rsp + sizeof(OPEN_PSX_RSP), |
1022 | sizeof (FILE_UNIX_BASIC_INFO)); | 1025 | sizeof (FILE_UNIX_BASIC_INFO)); |
1023 | } | 1026 | } |
1024 | 1027 | ||