From: Michal Hocko <[email protected]>

copy_params seems to be little bit confused about which allocation flags
to use. It enforces GFP_NOIO even though it uses
memalloc_noio_{save,restore} which enforces GFP_NOIO at the page
allocator level automatically (via memalloc_noio_flags). It also
uses __GFP_REPEAT for the __vmalloc request which doesn't make much
sense either because vmalloc doesn't rely on costly high order
allocations. Let's just drop the __GFP_REPEAT and leave the further
cleanup to later changes.

Cc: Shaohua Li <[email protected]>
Cc: Mikulas Patocka <[email protected]>
Cc: [email protected]
Signed-off-by: Michal Hocko <[email protected]>
---
 drivers/md/dm-ioctl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
index 2adf81d81fca..2c7ca258c4e4 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
@@ -1723,7 +1723,7 @@ static int copy_params(struct dm_ioctl __user *user, 
struct dm_ioctl *param_kern
        if (!dmi) {
                unsigned noio_flag;
                noio_flag = memalloc_noio_save();
-               dmi = __vmalloc(param_kernel->data_size, GFP_NOIO | 
__GFP_REPEAT | __GFP_HIGH | __GFP_HIGHMEM, PAGE_KERNEL);
+               dmi = __vmalloc(param_kernel->data_size, GFP_NOIO | __GFP_HIGH 
| __GFP_HIGHMEM, PAGE_KERNEL);
                memalloc_noio_restore(noio_flag);
                if (dmi)
                        *param_flags |= DM_PARAMS_VMALLOC;
-- 
2.8.0.rc3

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to