kernel: make mntcache effective, be carefull

This commit is contained in:
cinap_lenrek 2011-12-22 02:17:29 +01:00
parent 27830ae53e
commit ea5a23d39a
4 changed files with 32 additions and 34 deletions

View file

@ -200,7 +200,7 @@ pio(Segment *s, ulong addr, ulong soff, Page **p)
Page *new;
KMap *k;
Chan *c;
int n, ask;
int n, ask, cache;
char *kaddr;
ulong daddr;
Page *loadrec;
@ -238,15 +238,18 @@ retry:
k = kmap(new);
kaddr = (char*)VA(k);
cache = c->flag & CCACHE;
while(waserror()) {
c->flag |= cache;
if(strcmp(up->errstr, Eintr) == 0)
continue;
kunmap(k);
putpage(new);
faulterror(Eioload, c, 0);
}
c->flag &= ~CCACHE;
n = devtab[c->type]->read(c, kaddr, ask, daddr);
c->flag |= cache;
if(n != ask)
faulterror(Eioload, c, 0);
if(ask < BY2PG)