Substantially reduce PF_MEMALLOC usage.

If you're using libdevmapper, you should upgrade to version 1.02.00 or above.
If you're using LVM2, you should upgrade to version 2.02.00 or above.

Signed-Off-By: Alasdair G Kergon <agk@redhat.com>

--- linux-2.6.14-rc2.orig/drivers/md/dm-ioctl.c	2005-11-10 23:05:33.000000000 +0000
+++ linux-2.6.14-rc2/drivers/md/dm-ioctl.c	2005-11-11 17:38:32.000000000 +0000
@@ -1359,16 +1359,11 @@ static int ctl_ioctl(struct inode *inode
 	 * Copy the parameters into kernel space.
 	 */
 	r = copy_params(user, &param);
-	if (r) {
-		current->flags &= ~PF_MEMALLOC;
-		return r;
-	}
 
-	/*
-	 * FIXME: eventually we will remove the PF_MEMALLOC flag
-	 * here.  However the tools still do nasty things like
-	 * 'load' while a device is suspended.
-	 */
+	current->flags &= ~PF_MEMALLOC;
+
+	if (r)
+		return r;
 
 	r = validate_params(cmd, param);
 	if (r)
@@ -1386,7 +1381,6 @@ static int ctl_ioctl(struct inode *inode
 
  out:
 	free_params(param);
-	current->flags &= ~PF_MEMALLOC;
 	return r;
 }