dm ioctl: remove PF_MEMALLOC
When allocating memory for the userspace ioctl data, set some appropriate GPF flags directly instead of using PF_MEMALLOC. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
parent
7960123f2d
commit
5023e5cf58
2 changed files with 6 additions and 11 deletions
|
@ -1556,7 +1556,10 @@ static int copy_params(struct dm_ioctl __user *user, struct dm_ioctl **param)
|
||||||
|
|
||||||
secure_data = tmp.flags & DM_SECURE_DATA_FLAG;
|
secure_data = tmp.flags & DM_SECURE_DATA_FLAG;
|
||||||
|
|
||||||
dmi = vmalloc(tmp.data_size);
|
/*
|
||||||
|
* Try to avoid low memory issues when a device is suspended.
|
||||||
|
*/
|
||||||
|
dmi = __vmalloc(tmp.data_size, GFP_NOIO | __GFP_REPEAT | __GFP_HIGH, PAGE_KERNEL);
|
||||||
if (!dmi) {
|
if (!dmi) {
|
||||||
if (secure_data && clear_user(user, tmp.data_size))
|
if (secure_data && clear_user(user, tmp.data_size))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
@ -1656,19 +1659,11 @@ static int ctl_ioctl(uint command, struct dm_ioctl __user *user)
|
||||||
return -ENOTTY;
|
return -ENOTTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Trying to avoid low memory issues when a device is
|
|
||||||
* suspended.
|
|
||||||
*/
|
|
||||||
current->flags |= PF_MEMALLOC;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy the parameters into kernel space.
|
* Copy the parameters into kernel space.
|
||||||
*/
|
*/
|
||||||
r = copy_params(user, ¶m);
|
r = copy_params(user, ¶m);
|
||||||
|
|
||||||
current->flags &= ~PF_MEMALLOC;
|
|
||||||
|
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
|
@ -268,8 +268,8 @@ enum {
|
||||||
|
|
||||||
#define DM_VERSION_MAJOR 4
|
#define DM_VERSION_MAJOR 4
|
||||||
#define DM_VERSION_MINOR 23
|
#define DM_VERSION_MINOR 23
|
||||||
#define DM_VERSION_PATCHLEVEL 0
|
#define DM_VERSION_PATCHLEVEL 1
|
||||||
#define DM_VERSION_EXTRA "-ioctl (2012-07-25)"
|
#define DM_VERSION_EXTRA "-ioctl (2012-12-18)"
|
||||||
|
|
||||||
/* Status bits */
|
/* Status bits */
|
||||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||||
|
|
Loading…
Add table
Reference in a new issue