bstore.end(), buf);
LASSERT(it != bstore.end(), /**/);
++it;
- if (it == bstore.end())
- return bstore.front();
- else
- return *it;
+ Buffer * nextbuf = (it == bstore.end()) ? bstore.front() : *it;
+ if (nextbuf->fileName().extension() == "internal")
+ return next(nextbuf);
+ return nextbuf;
}
BufferStorage::const_iterator it = find(bstore.begin(),
bstore.end(), buf);
LASSERT(it != bstore.end(), /**/);
- if (it == bstore.begin())
- return bstore.back();
- else
- return *(it - 1);
+
+ Buffer * previousbuf = (it == bstore.begin()) ? bstore.back() : *(it - 1);
+ if (previousbuf->fileName().extension() == "internal")
+ return previous(previousbuf);
+ return previousbuf;
}