lkml.org 
[lkml]   [2006]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2.6.18] sysfs: remove duplicated dput in sysfs_update_file
    On Wed, Sep 20, 2006 at 04:38:00PM +0900, Hidetoshi Seto wrote:
    > Following function can drops d_count twice against one reference
    > by lookup_one_len.
    >
    > <SOURCE>
    > /**
    > * sysfs_update_file - update the modified timestamp on an object attribute.
    > * @kobj: object we're acting for.
    > * @attr: attribute descriptor.
    > */
    > int sysfs_update_file(struct kobject * kobj, const struct attribute * attr)
    > {
    > struct dentry * dir = kobj->dentry;
    > struct dentry * victim;
    > int res = -ENOENT;
    >
    > mutex_lock(&dir->d_inode->i_mutex);
    > victim = lookup_one_len(attr->name, dir, strlen(attr->name));
    > if (!IS_ERR(victim)) {
    > /* make sure dentry is really there */
    > if (victim->d_inode &&
    > (victim->d_parent->d_inode == dir->d_inode)) {
    > victim->d_inode->i_mtime = CURRENT_TIME;
    > fsnotify_modify(victim);
    >
    > /**
    > * Drop reference from initial sysfs_get_dentry().
    > */
    > dput(victim);
    > res = 0;
    > } else
    > d_drop(victim);
    >
    > /**
    > * Drop the reference acquired from sysfs_get_dentry() above.
    > */
    > dput(victim);
    > }
    > mutex_unlock(&dir->d_inode->i_mutex);
    >
    > return res;
    > }
    > </SOURCE>
    >
    > PCI-hotplug (drivers/pci/hotplug/pci_hotplug_core.c) is only user of
    > this function. I confirmed that dentry of /sys/bus/pci/slots/XXX/*
    > have negative d_count value.
    >
    > This patch removes unnecessary dput().
    >
    > Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    >
    > ---
    > fs/sysfs/file.c | 5 -----
    > 1 files changed, 5 deletions(-)
    >
    > Index: linux-2.6.18/fs/sysfs/file.c
    > ===================================================================
    > --- linux-2.6.18.orig/fs/sysfs/file.c
    > +++ linux-2.6.18/fs/sysfs/file.c
    > @@ -483,11 +483,6 @@
    > (victim->d_parent->d_inode == dir->d_inode)) {
    > victim->d_inode->i_mtime = CURRENT_TIME;
    > fsnotify_modify(victim);
    > -
    > - /**
    > - * Drop reference from initial sysfs_get_dentry().
    > - */
    > - dput(victim);
    > res = 0;
    > } else
    > d_drop(victim);
    >
    > -
    >

    Looks good to me..

    Thanks
    Maneesh
    -
    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-09-21 05:25    [W:0.025 / U:3.704 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site