[Patch] hugetlb: remove user_shm_lock() check fromhugetlb_file_setup()

From: AmÃrico Wang
Date: Sat Jun 18 2011 - 03:13:35 EST



This is a revert of

commit 2584e517320bd48dc8d20e38a2621a2dbe58fade
Author: Ravikiran G Thirumalai <kiran@xxxxxxxxxxxx>
Date: Tue Mar 31 15:21:26 2009 -0700

mm: reintroduce and deprecate rlimit based access for SHM_HUGETLB


because it is deprecated and scheduled to be removed.

Cc: Mel Gorman <mel@xxxxxxxxx>
Cc: Ravikiran Thirumalai <kiran@xxxxxxxxxxxx>
Signed-off-by: WANG Cong <xiyou.wangcong@xxxxxxxxx>

---
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 72e2384..d627fd3 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -298,18 +298,6 @@ Who: Michael Buesch <mb@xxxxxxxxx>

---------------------------

-What: Ability for non root users to shm_get hugetlb pages based on mlock
- resource limits
-When: 2.6.31
-Why: Non root users need to be part of /proc/sys/vm/hugetlb_shm_group or
- have CAP_IPC_LOCK to be able to allocate shm segments backed by
- huge pages. The mlock based rlimit check to allow shm hugetlb is
- inconsistent with mmap based allocations. Hence it is being
- deprecated.
-Who: Ravikiran Thirumalai <kiran@xxxxxxxxxxxx>
-
----------------------------
-
What: CONFIG_THERMAL_HWMON
When: January 2009
Why: This option was introduced just to allow older lm-sensors userspace
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 7aafeb8..e2627a3 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -936,15 +936,8 @@ struct file *hugetlb_file_setup(const char *name, size_t size,
if (!hugetlbfs_vfsmount)
return ERR_PTR(-ENOENT);

- if (creat_flags == HUGETLB_SHMFS_INODE && !can_do_hugetlb_shm()) {
- *user = current_user();
- if (user_shm_lock(size, *user)) {
- printk_once(KERN_WARNING "Using mlock ulimits for SHM_HUGETLB is deprecated\n");
- } else {
- *user = NULL;
- return ERR_PTR(-EPERM);
- }
- }
+ if (creat_flags == HUGETLB_SHMFS_INODE && !can_do_hugetlb_shm())
+ return ERR_PTR(-EPERM);

root = hugetlbfs_vfsmount->mnt_root;
quick_string.name = name;
@@ -952,7 +945,7 @@ struct file *hugetlb_file_setup(const char *name, size_t size,
quick_string.hash = 0;
path.dentry = d_alloc(root, &quick_string);
if (!path.dentry)
- goto out_shm_unlock;
+ goto out;

path.mnt = mntget(hugetlbfs_vfsmount);
error = -ENOSPC;
@@ -983,11 +976,7 @@ out_inode:
iput(inode);
out_dentry:
path_put(&path);
-out_shm_unlock:
- if (*user) {
- user_shm_unlock(size, *user);
- *user = NULL;
- }
+out:
return ERR_PTR(error);
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/