Whamcloud - gitweb
LU-3486 llite: remove ll_d_root_ops
[fs/lustre-release.git] / lustre / llite / statahead.c
index 19ca1b4..d8d2187 100644 (file)
@@ -893,9 +893,6 @@ static int do_sa_revalidate(struct inode *dir, struct ll_sa_entry *entry,
         if (d_mountpoint(dentry))
                 RETURN(1);
 
-        if (unlikely(dentry == dentry->d_sb->s_root))
-                RETURN(1);
-
         entry->se_inode = igrab(inode);
         rc = md_revalidate_lock(ll_i2mdexp(dir), &it, ll_inode2fid(inode),NULL);
         if (rc == 1) {
@@ -1620,6 +1617,10 @@ int do_statahead_enter(struct inode *dir, struct dentry **dentryp,
                                if ((*dentryp)->d_inode == NULL) {
                                        *dentryp = ll_splice_alias(inode,
                                                                   *dentryp);
+                                       if (IS_ERR(*dentryp)) {
+                                               ll_sai_unplug(sai, entry);
+                                               RETURN(PTR_ERR(*dentryp));
+                                       }
                                 } else if ((*dentryp)->d_inode != inode) {
                                         /* revalidate, but inode is recreated */
                                         CDEBUG(D_READA,