• Mikulas Patocka's avatar
    dm ioctl: optimize functions without variable params · 02cde50b
    Mikulas Patocka authored
    Device-mapper ioctls receive and send data in a buffer supplied
    by userspace.  The buffer has two parts.  The first part contains
    a 'struct dm_ioctl' and has a fixed size.  The second part depends
    on the ioctl and has a variable size.
    
    This patch recognises the specific ioctls that do not use the variable
    part of the buffer and skips allocating memory for it.
    
    In particular, when a device is suspended and a resume ioctl is sent,
    this now avoid memory allocation completely.
    
    The variable "struct dm_ioctl tmp" is moved from the function
    copy_params to its caller ctl_ioctl and renamed to param_kernel.
    It is used directly when the ioctl function doesn't need any arguments.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    02cde50b
dm-ioctl.c 39.3 KB