lkml.org 
[lkml]   [2010]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/12] sunrpc: mount rpc_pipefs on initialization
    Date
    From: Kirill A. Shutemov <kirill@shutemov.name>

    Mount rpc_pipefs on register_rpc_pipefs() and replace
    rpc_get_mount()/rpc_put_mount() implementation with mntget()/mntput().

    Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
    ---
    net/sunrpc/rpc_pipe.c | 27 ++++++++++++++++-----------
    1 files changed, 16 insertions(+), 11 deletions(-)

    diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
    index 10a17a3..7f3fbdd 100644
    --- a/net/sunrpc/rpc_pipe.c
    +++ b/net/sunrpc/rpc_pipe.c
    @@ -29,7 +29,6 @@
    #include <linux/sunrpc/cache.h>

    static struct vfsmount *rpc_mnt __read_mostly;
    -static int rpc_mount_count;

    static struct file_system_type rpc_pipe_fs_type;

    @@ -415,18 +414,13 @@ struct rpc_filelist {

    struct vfsmount *rpc_get_mount(void)
    {
    - int err;
    -
    - err = simple_pin_fs(&rpc_pipe_fs_type, &rpc_mnt, &rpc_mount_count);
    - if (err != 0)
    - return ERR_PTR(err);
    - return rpc_mnt;
    + return mntget(rpc_mnt);
    }
    EXPORT_SYMBOL_GPL(rpc_get_mount);

    void rpc_put_mount(void)
    {
    - simple_release_fs(&rpc_mnt, &rpc_mount_count);
    + mntput(rpc_mnt);
    }
    EXPORT_SYMBOL_GPL(rpc_put_mount);

    @@ -1063,16 +1057,27 @@ int register_rpc_pipefs(void)
    if (!rpc_inode_cachep)
    return -ENOMEM;
    err = register_filesystem(&rpc_pipe_fs_type);
    - if (err) {
    - kmem_cache_destroy(rpc_inode_cachep);
    - return err;
    + if (err)
    + goto destroy_cache;
    +
    + rpc_mnt = kern_mount(&rpc_pipe_fs_type);
    + if (IS_ERR(rpc_mnt)) {
    + err = PTR_ERR(rpc_mnt);
    + goto unregister_fs;
    }

    return 0;
    +
    +unregister_fs:
    + unregister_filesystem(&rpc_pipe_fs_type);
    +destroy_cache:
    + kmem_cache_destroy(rpc_inode_cachep);
    + return err;
    }

    void unregister_rpc_pipefs(void)
    {
    + mntput(rpc_mnt);
    kmem_cache_destroy(rpc_inode_cachep);
    unregister_filesystem(&rpc_pipe_fs_type);
    }
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2010-12-20 12:57    [W:0.029 / U:0.212 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site