|
@@ -872,12 +872,19 @@ cifs_demultiplex_thread(void *p)
|
|
|
continue;
|
|
|
server->total_read += length;
|
|
|
|
|
|
- mid_entry = server->ops->find_mid(server, buf);
|
|
|
+ if (server->ops->is_transform_hdr &&
|
|
|
+ server->ops->receive_transform &&
|
|
|
+ server->ops->is_transform_hdr(buf)) {
|
|
|
+ length = server->ops->receive_transform(server,
|
|
|
+ &mid_entry);
|
|
|
+ } else {
|
|
|
+ mid_entry = server->ops->find_mid(server, buf);
|
|
|
|
|
|
- if (!mid_entry || !mid_entry->receive)
|
|
|
- length = standard_receive3(server, mid_entry);
|
|
|
- else
|
|
|
- length = mid_entry->receive(server, mid_entry);
|
|
|
+ if (!mid_entry || !mid_entry->receive)
|
|
|
+ length = standard_receive3(server, mid_entry);
|
|
|
+ else
|
|
|
+ length = mid_entry->receive(server, mid_entry);
|
|
|
+ }
|
|
|
|
|
|
if (length < 0)
|
|
|
continue;
|