[PATCH] [CIFS] SMB2 FSCTL and IOCTL worker function

Steve French smfrench at gmail.com
Tue Jun 25 00:05:59 MDT 2013


On Mon, Jun 24, 2013 at 8:35 AM, David Disseldorp <ddiss at suse.de> wrote:
> Hi Steve,
>
> On Mon, 24 Jun 2013 02:19:13 -0500
> Steve French <smfrench at gmail.com> wrote:
>
>> +     rc = SendReceive2(xid, ses, iov, num_iovecs, &resp_buftype, 0);
>> +     rsp = (struct smb2_ioctl_rsp *)iov[0].iov_base;
>> +
>> +     if (rc != 0) {
>> +             if (tcon)
>> +                     cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE);
>> +             goto ioctl_exit;
>> +     }
>
> IIUC, this throws away any response data if the server reply status
> is unsuccessful.
>
> The caller may wish to obtain the response data under certain error
> conditions, particularly in the case of FSCTL_SRV_COPYCHUNK, where the
> server returns chunk request limits alongside STATUS_INVALID_PARAMETER
> in some cases. See MS-SMB2 2.2.32.1 for details.

that is a really good point - I will add handling for that in the code
to do copychunk (I am running into some alignment issues in my current
version of the client side of the copychunk path).

AFAICT from the spec, copychunk is the only example of an fsctl where
(on a specific error) we have to parse a response


-- 
Thanks,

Steve


More information about the samba-technical mailing list