don't bother with __d_instantiate(dentry, NULL)
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 9 Mar 2016 23:05:42 +0000 (18:05 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 14 Mar 2016 04:17:32 +0000 (00:17 -0400)
it's a no-op - bumping ->d_seq is pointless there.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/dcache.c

index 244fd24..57da412 100644 (file)
@@ -1745,13 +1745,11 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
        unsigned add_flags = d_flags_for_inode(inode);
 
        spin_lock(&dentry->d_lock);
-       if (inode)
-               hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
+       hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
        raw_write_seqcount_begin(&dentry->d_seq);
        __d_set_inode_and_type(dentry, inode, add_flags);
        raw_write_seqcount_end(&dentry->d_seq);
-       if (inode)
-               __fsnotify_d_instantiate(dentry);
+       __fsnotify_d_instantiate(dentry);
        spin_unlock(&dentry->d_lock);
 }
 
@@ -1773,11 +1771,11 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
 void d_instantiate(struct dentry *entry, struct inode * inode)
 {
        BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
-       if (inode)
+       if (inode) {
                spin_lock(&inode->i_lock);
-       __d_instantiate(entry, inode);
-       if (inode)
+               __d_instantiate(entry, inode);
                spin_unlock(&inode->i_lock);
+       }
        security_d_instantiate(entry, inode);
 }
 EXPORT_SYMBOL(d_instantiate);
@@ -2764,10 +2762,9 @@ struct dentry *d_splice_alias(struct inode *inode, struct dentry *dentry)
 
        BUG_ON(!d_unhashed(dentry));
 
-       if (!inode) {
-               __d_instantiate(dentry, NULL);
+       if (!inode)
                goto out;
-       }
+
        spin_lock(&inode->i_lock);
        if (S_ISDIR(inode->i_mode)) {
                struct dentry *new = __d_find_any_alias(inode);