vacfs: present qids correctly
This commit is contained in:
parent
4395d738f4
commit
fa3c8da1c0
4 changed files with 15 additions and 7 deletions
|
|
@ -142,9 +142,16 @@ uvlong
|
|||
vacfilegetid(VacFile *f)
|
||||
{
|
||||
/* immutable */
|
||||
fprint(2, "getid %s %lld+%lld = %lld\n", f->dir.elem, f->qidoffset, f->dir.qid, f->qidoffset+f->dir.qid);
|
||||
return f->qidoffset + f->dir.qid;
|
||||
}
|
||||
|
||||
uvlong
|
||||
vacfilegetqidoffset(VacFile *f)
|
||||
{
|
||||
return f->qidoffset;
|
||||
}
|
||||
|
||||
ulong
|
||||
vacfilegetmcount(VacFile *f)
|
||||
{
|
||||
|
|
@ -402,6 +409,7 @@ dirlookup(VacFile *f, char *elem)
|
|||
filefree(ff);
|
||||
goto Err;
|
||||
}
|
||||
fprint(2, "offset %s %lld\n", ff->dir.elem, ff->dir.qidoffset);
|
||||
ff->qidoffset = f->qidoffset + ff->dir.qidoffset;
|
||||
vtfileunlock(meta);
|
||||
vtblockput(b);
|
||||
|
|
|
|||
|
|
@ -586,7 +586,9 @@ vacmergefile(VacFile *fp, VacFile *mp, VacDir *d, char *vacfile,
|
|||
d->qidoffset = offset;
|
||||
d->qidmax = max;
|
||||
}
|
||||
if(vacfilesetdir(f, d) < 0 || vacfilesetentries(f, &ed, &em) < 0){
|
||||
if(vacfilesetdir(f, d) < 0
|
||||
|| vacfilesetentries(f, &ed, &em) < 0
|
||||
|| vacfilesetqidspace(f, d->qidoffset, d->qidmax) < 0){
|
||||
warn("vacmergefile %s: %r", d->elem);
|
||||
vacfiledecref(mf);
|
||||
vacfiledecref(f);
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ int vacfilesetentries(VacFile *f, VtEntry *e, VtEntry *me);
|
|||
void vdcleanup(VacDir *dir);
|
||||
void vdcopy(VacDir *dst, VacDir *src);
|
||||
int vacfilesetqidspace(VacFile*, u64int, u64int);
|
||||
uvlong vacfilegetqidoffset(VacFile*);
|
||||
|
||||
VacDirEnum *vdeopen(VacFile*);
|
||||
int vderead(VacDirEnum*, VacDir *);
|
||||
|
|
|
|||
|
|
@ -637,14 +637,11 @@ vacstat(VacFile *parent, VacDir *vd, uchar *p, int np)
|
|||
char *ext = nil;
|
||||
#endif
|
||||
|
||||
USED(parent);
|
||||
|
||||
memset(&dir, 0, sizeof(dir));
|
||||
|
||||
/*
|
||||
* Where do path and version come from
|
||||
*/
|
||||
dir.qid.path = vd->qid;
|
||||
dir.qid.path = vd->qid + vacfilegetqidoffset(parent);
|
||||
if(vd->qidspace)
|
||||
dir.qid.path += vd->qidoffset;
|
||||
dir.qid.vers = vd->mcount;
|
||||
dir.mode = vd->mode & 0777;
|
||||
if(vd->mode & ModeAppend){
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue