diff --git a/lustre/llite/statahead.c b/lustre/llite/statahead.c
index 2e7d0997ebf56bd97f0c88fdc4d1c83b4012da41..e3f0662febc01ca7aee8cc635cfa89266344e9b1 100644
--- a/lustre/llite/statahead.c
+++ b/lustre/llite/statahead.c
@@ -1129,7 +1129,8 @@ int do_statahead_enter(struct inode *dir, struct dentry **dentryp, int lookup)
                                           &(*dentryp)->d_name);
                         if (result) {
                                 LASSERT(result != *dentryp);
-                                dput(*dentryp);
+                                /* BUG 16303: do not drop reference count for
+                                 * "*dentryp", VFS will do that by itself. */
                                 *dentryp = result;
                                 RETURN(1);
                         }