lkml.org 
[lkml]   [2006]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 3/5] NFS: Abstract out namespace initialisation
    The attached patch abstracts out the namespace initialisation so that temporary
    namespaces can be set up elsewhere.

    Signed-Off-By: David Howells <dhowells@redhat.com>
    ---
    warthog>diffstat -p1 init-namespace-2616rc4.diff
    fs/namespace.c | 8 +-------
    include/linux/namespace.h | 15 +++++++++++++++
    2 files changed, 16 insertions(+), 7 deletions(-)

    diff -uNrp linux-2.6.16-rc4-getsb/include/linux/namespace.h linux-2.6.16-rc4-getsb-nfs/include/linux/namespace.h
    --- linux-2.6.16-rc4-getsb/include/linux/namespace.h 2006-02-22 17:00:42.000000000 +0000
    +++ linux-2.6.16-rc4-getsb-nfs/include/linux/namespace.h 2006-02-22 17:37:04.000000000 +0000
    @@ -17,6 +17,21 @@ extern int copy_namespace(int, struct ta
    extern void __put_namespace(struct namespace *namespace);
    extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct *);

    +static inline void init_namespace(struct namespace *namespace,
    + struct vfsmount *mnt)
    +{
    + atomic_set(&namespace->count, 1);
    + INIT_LIST_HEAD(&namespace->list);
    + init_waitqueue_head(&namespace->poll);
    + namespace->event = 0;
    + namespace->root = mnt;
    +
    + if (mnt) {
    + list_add(&mnt->mnt_list, &namespace->list);
    + mnt->mnt_namespace = namespace;
    + }
    +}
    +
    static inline void put_namespace(struct namespace *namespace)
    {
    if (atomic_dec_and_lock(&namespace->count, &vfsmount_lock))
    diff -uNrp linux-2.6.16-rc4-getsb/fs/namespace.c linux-2.6.16-rc4-getsb-nfs/fs/namespace.c
    --- linux-2.6.16-rc4-getsb/fs/namespace.c 2006-02-22 17:00:37.000000000 +0000
    +++ linux-2.6.16-rc4-getsb-nfs/fs/namespace.c 2006-02-22 18:21:52.000000000 +0000
    @@ -1679,13 +1679,7 @@ static void __init init_mount_tree(void)
    namespace = kmalloc(sizeof(*namespace), GFP_KERNEL);
    if (!namespace)
    panic("Can't allocate initial namespace");
    - atomic_set(&namespace->count, 1);
    - INIT_LIST_HEAD(&namespace->list);
    - init_waitqueue_head(&namespace->poll);
    - namespace->event = 0;
    - list_add(&mnt->mnt_list, &namespace->list);
    - namespace->root = mnt;
    - mnt->mnt_namespace = namespace;
    + init_namespace(namespace, mnt);

    init_task.namespace = namespace;
    read_lock(&tasklist_lock);
    -
    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/
    \
     
     \ /
      Last update: 2006-02-22 21:26    [W:0.052 / U:30.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site