dm ioctl: restore __GFP_HIGH in copy_params()
Commitd224e93818
("drivers/md/dm-ioctl.c: use kvmalloc rather than opencoded variant") left out the __GFP_HIGH flag when converting from __vmalloc to kvmalloc. This can cause the DM ioctl to fail in some low memory situations where it wouldn't have failed earlier. Add __GFP_HIGH back to avoid any potential regression. Fixes:d224e93818
("drivers/md/dm-ioctl.c: use kvmalloc rather than opencoded variant") Signed-off-by: Junaid Shahid <junaids@google.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
702a6204f8
commit
8c1e2162f2
|
@ -1710,12 +1710,13 @@ static int copy_params(struct dm_ioctl __user *user, struct dm_ioctl *param_kern
|
|||
}
|
||||
|
||||
/*
|
||||
* Try to avoid low memory issues when a device is suspended.
|
||||
* Use __GFP_HIGH to avoid low memory issues when a device is
|
||||
* suspended and the ioctl is needed to resume it.
|
||||
* Use kmalloc() rather than vmalloc() when we can.
|
||||
*/
|
||||
dmi = NULL;
|
||||
noio_flag = memalloc_noio_save();
|
||||
dmi = kvmalloc(param_kernel->data_size, GFP_KERNEL);
|
||||
dmi = kvmalloc(param_kernel->data_size, GFP_KERNEL | __GFP_HIGH);
|
||||
memalloc_noio_restore(noio_flag);
|
||||
|
||||
if (!dmi) {
|
||||
|
|
Loading…
Reference in New Issue