Messages in this thread Patch in this message | | | From | Tony Jones <> | Date | Wed, 19 Apr 2006 10:50:34 -0700 | Subject | [RFC][PATCH 11/11] security: AppArmor - Export namespace semaphore |
| |
This patch exports the namespace_sem semaphore.
The shared subtree patches which went into 2.6.15-rc1 replaced the old namespace semaphore which used to be per namespace (and visible) with a new single static semaphore.
The reason for this change is that currently visibility of vfsmount information to the LSM hooks is fairly patchy. Either there is no passed parameter or it can be NULL. For the case of the former, several LSM hooks that we require to mediate have no vfsmount/nameidata passed. We previously (mis)used the visibility of the old per namespace semaphore to walk the processes namespace looking for vfsmounts with a root dentry matching the dentry we were trying to mediate.
Clearly this is not viable long term strategy and changes working towards passing a vfsmount to all relevant LSM hooks would seem necessary (and also useful for other users of LSM). Alternative suggestions and ideas are welcomed.
Signed-off-by: Tony Jones <tonyj@suse.de>
--- fs/namespace.c | 3 ++- include/linux/namespace.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-)
--- linux-2.6.17-rc1.orig/fs/namespace.c +++ linux-2.6.17-rc1/fs/namespace.c @@ -46,7 +46,8 @@ static struct list_head *mount_hashtable __read_mostly; static int hash_mask __read_mostly, hash_bits __read_mostly; static kmem_cache_t *mnt_cache __read_mostly; -static struct rw_semaphore namespace_sem; +struct rw_semaphore namespace_sem; +EXPORT_SYMBOL_GPL(namespace_sem); /* /sys/fs */ decl_subsys(fs, NULL, NULL); --- linux-2.6.17-rc1.orig/include/linux/namespace.h +++ linux-2.6.17-rc1/include/linux/namespace.h @@ -5,6 +5,8 @@ #include <linux/mount.h> #include <linux/sched.h> +extern struct rw_semaphore namespace_sem; + struct namespace { atomic_t count; struct vfsmount * root; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |