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