commit
1174dd3188 (don't retry readdir request after issuing caps)
introduced an bug that wrongly marks 'end' in the the readdir reply.
The code that touches existing dentries re-uses an iterator, and the
iterator is used for checking if readdir is end.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
continue;
} else {
// touch everything i _do_ have
- for (it = dir->begin();
- it != dir->end();
- it++)
- if (!it->second->get_linkage()->is_null())
- mdcache->lru.lru_touch(it->second);
+ for (CDir::map_t::iterator p = dir->begin(); p != dir->end(); p++)
+ if (!p->second->get_linkage()->is_null())
+ mdcache->lru.lru_touch(p->second);
// already issued caps and leases, reply immediately.
if (dnbl.length() > 0) {