lkml.org 
[lkml]   [2009]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 03/24] sysfs: Remove now unnecessary error reporting suppression.
    From: Eric W. Biederman <ebiederm@xmission.com>

    Now that we use sysfs_rename_link in the places we previously
    used sysfs_create_link_nowarn we can remove sysfs_create_link_nowarn
    and all it's supporting infrastructure as it has no callers.

    Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
    ---
    fs/sysfs/dir.c | 54 +++++++++++----------------------------------------
    fs/sysfs/symlink.c | 42 ++++++++-------------------------------
    fs/sysfs/sysfs.h | 1 -
    3 files changed, 21 insertions(+), 76 deletions(-)

    diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
    index d88d0fa..b95cc07 100644
    --- a/fs/sysfs/dir.c
    +++ b/fs/sysfs/dir.c
    @@ -397,43 +397,6 @@ void sysfs_addrm_start(struct sysfs_addrm_cxt *acxt,
    }

    /**
    - * __sysfs_add_one - add sysfs_dirent to parent without warning
    - * @acxt: addrm context to use
    - * @sd: sysfs_dirent to be added
    - *
    - * Get @acxt->parent_sd and set sd->s_parent to it and increment
    - * nlink of parent inode if @sd is a directory and link into the
    - * children list of the parent.
    - *
    - * This function should be called between calls to
    - * sysfs_addrm_start() and sysfs_addrm_finish() and should be
    - * passed the same @acxt as passed to sysfs_addrm_start().
    - *
    - * LOCKING:
    - * Determined by sysfs_addrm_start().
    - *
    - * RETURNS:
    - * 0 on success, -EEXIST if entry with the given name already
    - * exists.
    - */
    -int __sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd)
    -{
    - if (sysfs_find_dirent(acxt->parent_sd, sd->s_name))
    - return -EEXIST;
    -
    - sd->s_parent = sysfs_get(acxt->parent_sd);
    -
    - if (sysfs_type(sd) == SYSFS_DIR && acxt->parent_inode)
    - inc_nlink(acxt->parent_inode);
    -
    - acxt->cnt++;
    -
    - sysfs_link_sibling(sd);
    -
    - return 0;
    -}
    -
    -/**
    * sysfs_pathname - return full path to sysfs dirent
    * @sd: sysfs_dirent whose path we want
    * @path: caller allocated buffer
    @@ -475,10 +438,7 @@ static char *sysfs_pathname(struct sysfs_dirent *sd, char *path)
    */
    int sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd)
    {
    - int ret;
    -
    - ret = __sysfs_add_one(acxt, sd);
    - if (ret == -EEXIST) {
    + if (sysfs_find_dirent(acxt->parent_sd, sd->s_name)) {
    char *path = kzalloc(PATH_MAX, GFP_KERNEL);
    WARN(1, KERN_WARNING
    "sysfs: cannot create duplicate filename '%s'\n",
    @@ -486,9 +446,19 @@ int sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd)
    strcat(strcat(sysfs_pathname(acxt->parent_sd, path), "/"),
    sd->s_name));
    kfree(path);
    + return -EEXIST;
    }

    - return ret;
    + sd->s_parent = sysfs_get(acxt->parent_sd);
    +
    + if (sysfs_type(sd) == SYSFS_DIR && acxt->parent_inode)
    + inc_nlink(acxt->parent_inode);
    +
    + acxt->cnt++;
    +
    + sysfs_link_sibling(sd);
    +
    + return 0;
    }

    /**
    diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
    index 11c4da5..ac13e61 100644
    --- a/fs/sysfs/symlink.c
    +++ b/fs/sysfs/symlink.c
    @@ -19,8 +19,14 @@

    #include "sysfs.h"

    -static int sysfs_do_create_link(struct kobject *kobj, struct kobject *target,
    - const char *name, int warn)
    +/**
    + * sysfs_create_link - create symlink between two objects.
    + * @kobj: object whose directory we're creating the link in.
    + * @target: object we're pointing to.
    + * @name: name of the symlink.
    + */
    +int sysfs_create_link(struct kobject *kobj, struct kobject *target,
    + const char *name)
    {
    struct sysfs_dirent *parent_sd = NULL;
    struct sysfs_dirent *target_sd = NULL;
    @@ -60,10 +66,7 @@ static int sysfs_do_create_link(struct kobject *kobj, struct kobject *target,
    target_sd = NULL; /* reference is now owned by the symlink */

    sysfs_addrm_start(&acxt, parent_sd);
    - if (warn)
    - error = sysfs_add_one(&acxt, sd);
    - else
    - error = __sysfs_add_one(&acxt, sd);
    + error = sysfs_add_one(&acxt, sd);
    sysfs_addrm_finish(&acxt);

    if (error)
    @@ -78,33 +81,6 @@ static int sysfs_do_create_link(struct kobject *kobj, struct kobject *target,
    }

    /**
    - * sysfs_create_link - create symlink between two objects.
    - * @kobj: object whose directory we're creating the link in.
    - * @target: object we're pointing to.
    - * @name: name of the symlink.
    - */
    -int sysfs_create_link(struct kobject *kobj, struct kobject *target,
    - const char *name)
    -{
    - return sysfs_do_create_link(kobj, target, name, 1);
    -}
    -
    -/**
    - * sysfs_create_link_nowarn - create symlink between two objects.
    - * @kobj: object whose directory we're creating the link in.
    - * @target: object we're pointing to.
    - * @name: name of the symlink.
    - *
    - * This function does the same as sysf_create_link(), but it
    - * doesn't warn if the link already exists.
    - */
    -int sysfs_create_link_nowarn(struct kobject *kobj, struct kobject *target,
    - const char *name)
    -{
    - return sysfs_do_create_link(kobj, target, name, 0);
    -}
    -
    -/**
    * sysfs_remove_link - remove symlink in object's directory.
    * @kobj: object we're acting for.
    * @name: name of the symlink to remove.
    diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h
    index 3fa0d98..abf05f4 100644
    --- a/fs/sysfs/sysfs.h
    +++ b/fs/sysfs/sysfs.h
    @@ -108,7 +108,6 @@ struct sysfs_dirent *sysfs_get_active_two(struct sysfs_dirent *sd);
    void sysfs_put_active_two(struct sysfs_dirent *sd);
    void sysfs_addrm_start(struct sysfs_addrm_cxt *acxt,
    struct sysfs_dirent *parent_sd);
    -int __sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd);
    int sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd);
    void sysfs_remove_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd);
    void sysfs_addrm_finish(struct sysfs_addrm_cxt *acxt);
    --
    1.6.3.1.54.g99dd.dirty


    \
     
     \ /
      Last update: 2009-05-29 01:07    [W:0.040 / U:88.884 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site