support for FSCTL_QUERY_ALLOCATED_RANGES.

Jeremy Allison jra at samba.org
Fri Apr 2 15:49:31 MDT 2010


On Thu, Apr 01, 2010 at 05:50:58PM -0400, Ira Cooper wrote:
> This patch implements FSCTL_QUERY_ALLOCATED_RANGES, or at least enough
> of it so that applications can use the call, and not die.
> 
> I've applied this patch to 3.5 and 3.6.
> 
> Thanks,
> 
> -Ira
> 
> --- a/source3/smbd/nttrans.c
> +++ b/source3/smbd/nttrans.c
> @@ -1964,6 +1964,16 @@ static void
> call_nt_transact_ioctl(connection_struct *conn,
>                 send_nt_replies(conn, req, NT_STATUS_OK, NULL, 0, NULL, 0);
>                 return;
> 
> +        case FSCTL_QUERY_ALLOCATED_RANGES:
> +        {
> +                /* All you do is return what you got.  We don't
> implement sparse files really. */
> +
> +                DEBUG(10,("FSCTL_QUERY_ALLOCATED_RANGES called on
> FID[0x%04X] - %d\n",fidnum, data_count));
> +                send_nt_replies(conn, req, NT_STATUS_OK, NULL, 0,
> +                                pdata, data_count);
> +                return;
> +        }
> +
>         case FSCTL_CREATE_OR_GET_OBJECT_ID:
>         {
>                 unsigned char objid[16];

Ok, I think it's a little more complex than this patch
(looking at MS-FSCC.pdf). If the file size is zero, we
need to return no ranges. I think we need to truncate
the length reply to the length of the file being queried
also. I'll make up a test patch for you.

Jeremy.


More information about the samba-technical mailing list