- dcs = dentry->d_cookie;
-
- if (!dcs)
- dcs = alloc_dcookie(dentry, vfsmnt);
-
- if (!dcs) {
- err = -ENOMEM;
- goto out;
+ if (path->dentry->d_flags & DCACHE_COOKIE) {
+ dcs = find_dcookie((unsigned long)path->dentry);
+ } else {
+ dcs = alloc_dcookie(path);
+ if (!dcs) {
+ err = -ENOMEM;
+ goto out;
+ }