diff --git a/lustre/smfs/dir.c b/lustre/smfs/dir.c
index bea797efee8b706726f08c846aeba52b9b9a3442..469f77c324995420441bc877e5d5cfad464c8a63 100644
--- a/lustre/smfs/dir.c
+++ b/lustre/smfs/dir.c
@@ -227,19 +227,22 @@ static int smfs_do_lookup (struct inode * dir,
                                                 I2SMI(dir), 0); 
                         if (!(*inode))
                                 rc = -ENOENT;
-                        else {
-                                if (!tmp->d_inode->i_nlink) {
-                                        struct inode * ind = tmp->d_inode;
-                                
-                                        CWARN("inode #%lu (%*s) nlink is %i/%i\n",
-                                              ind->i_ino, tmp->d_name.len,
-                                              tmp->d_name.name, ind->i_nlink,
-                                              (*inode)->i_nlink);
-                                        CWARN("parent #%lu (%*s) nlink is %i\n",
-                                              dir->i_ino, tmp->d_parent->d_name.len,
-                                              tmp->d_parent->d_name.name,
-                                              cache_dir->i_nlink);
-                                }
+                        else if (!tmp->d_inode->i_nlink) {
+                                struct inode * ind = tmp->d_inode;
+
+                                CDEBUG(D_ERROR, "inode #%lu (%*s) nlink is %i/%i\n",
+                                                ind->i_ino, tmp->d_name.len,
+                                                tmp->d_name.name, ind->i_nlink,
+                                                (*inode)->i_nlink);
+                                CDEBUG(D_ERROR, "parent #%lu (%*s) nlink is %i\n",
+                                                dir->i_ino, tmp->d_parent->d_name.len,
+                                                tmp->d_parent->d_name.name,
+                                                cache_dir->i_nlink);
+                                CDEBUG(D_ERROR, "rc = %d\n", rc);
+
+                                if (is_bad_inode(ind))
+                                        CDEBUG(D_ERROR, "bad inode returned %lu/%u\n",
+                                               ind->i_ino, ind->i_generation);
                         }
                 }
         }