]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/sysfs/inode.c
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6-omap-h63xx.git] / fs / sysfs / inode.c
index f95966847a81c8f8a2b155989c90846eb09ae188..3756e152285ab0ea219c90a698f4391040f17940 100644 (file)
@@ -197,62 +197,6 @@ void sysfs_instantiate(struct dentry *dentry, struct inode *inode)
        d_instantiate(dentry, inode);
 }
 
-/**
- *     sysfs_drop_dentry - drop dentry for the specified sysfs_dirent
- *     @sd: target sysfs_dirent
- *
- *     Drop dentry for @sd.  @sd must have been unlinked from its
- *     parent on entry to this function such that it can't be looked
- *     up anymore.
- *
- *     @sd->s_dentry which is protected with sysfs_assoc_lock points
- *     to the currently associated dentry but we're not holding a
- *     reference to it and racing with dput().  Grab dcache_lock and
- *     verify dentry before dropping it.  If @sd->s_dentry is NULL or
- *     dput() beats us, no need to bother.
- */
-void sysfs_drop_dentry(struct sysfs_dirent *sd)
-{
-       struct dentry *dentry = NULL;
-       struct inode *inode;
-
-       /* We're not holding a reference to ->s_dentry dentry but the
-        * field will stay valid as long as sysfs_assoc_lock is held.
-        */
-       spin_lock(&sysfs_assoc_lock);
-       spin_lock(&dcache_lock);
-
-       /* drop dentry if it's there and dput() didn't kill it yet */
-       if (sd->s_dentry && sd->s_dentry->d_inode) {
-               dentry = dget_locked(sd->s_dentry);
-               spin_lock(&dentry->d_lock);
-               __d_drop(dentry);
-               spin_unlock(&dentry->d_lock);
-       }
-
-       spin_unlock(&dcache_lock);
-       spin_unlock(&sysfs_assoc_lock);
-
-       dput(dentry);
-       /* XXX: unpin if directory, this will go away soon */
-       if (sysfs_type(sd) == SYSFS_DIR)
-               dput(dentry);
-
-       /* adjust nlink and update timestamp */
-       inode = ilookup(sysfs_sb, sd->s_ino);
-       if (inode) {
-               mutex_lock(&inode->i_mutex);
-
-               inode->i_ctime = CURRENT_TIME;
-               drop_nlink(inode);
-               if (sysfs_type(sd) == SYSFS_DIR)
-                       drop_nlink(inode);
-
-               mutex_unlock(&inode->i_mutex);
-               iput(inode);
-       }
-}
-
 int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const char *name)
 {
        struct sysfs_addrm_cxt acxt;