rem: path_view::iterator i = pt.find(file_key(info_hash, p));
add: path_view::iterator i = pt.find(p);
context: 		boost::shared_ptr<file> open_file(sha1_hash const& info_hash, path const& p, file::open_mode m)		{			assert(p.is_complete());			typedef file_set::nth_index<0>::type path_view;			path_view& pt = m_files.get<0>();			path_view::iterator i = pt.find(file_key(info_hash, p));			if (i != pt.end())			{				file_entry e = *i;				e.last_use = pt::second_clock::universal_time();				if ((e.mode & m) != m)				{					// close the file before we open it with					// the new read/write privilages					i->file_ptr.reset();					assert(e.file_ptr.unique());					e.file_ptr.reset();					e.file_ptr.reset(new file(p, m));					e.mode = m;				}				pt.replace(i, e);				return e.file_ptr;			}			// the file is not in our cache			if ((int)m_files.size() >= m_size)			{				// the file cache is at its maximum size, close				// the least recently used (lru) file from it				typedef file_set::nth_index<1>::type lru_view;				lru_view& lt = m_files.get<1>();				lru_view::iterator i = lt.begin();				// the first entry in this view is the least recently used/*				for (lru_view::iterator i = lt.begin(); i != lt.end(); ++i)				{					std::cerr << i->last_use << "\n";				}*/				assert(lt.size() == 1 || (i->last_use <= boost::next(i)->last_use));				lt.erase(i);			}			file_entry e(boost::shared_ptr<file>(new file(p, m)));			e.mode = m;			e.key.info_hash = info_hash;			e.key.file_path = p;			pt.insert(e);			return e.file_ptr;		}