- sai->sai_inode = igrab(dir);
- if (unlikely(sai->sai_inode == NULL)) {
- CWARN("Do not start stat ahead on dying inode "DFID"\n",
- PFID(&lli->lli_fid));
- GOTO(out, rc = -ESTALE);
- }
-
- /* get parent reference count here, and put it in ll_statahead_thread */
- parent = dget(dentry->d_parent);
- if (unlikely(sai->sai_inode != parent->d_inode)) {
- struct ll_inode_info *nlli = ll_i2info(parent->d_inode);
-
- CWARN("Race condition, someone changed %.*s just now: "
- "old parent "DFID", new parent "DFID"\n",
- dentry->d_name.len, dentry->d_name.name,
- PFID(&lli->lli_fid), PFID(&nlli->lli_fid));
- dput(parent);
- iput(sai->sai_inode);
- GOTO(out, rc = -EAGAIN);
- }