tvac: fix -m bug (Myron Cheung) - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 9b3ac170501c1f1b50a8e7eaf39d68653b3bd72d
 (DIR) parent a1b61b4635adf4e070fdf91e3a512d94195214cd
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Wed,  2 Jul 2008 15:39:13 -0400
       
       vac: fix -m bug (Myron Cheung)
       
       Diffstat:
         M src/cmd/vac/file.c                  |       3 +--
         M src/cmd/vac/vac.c                   |       6 +++---
       
       2 files changed, 4 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/vac/file.c b/src/cmd/vac/file.c
       t@@ -408,7 +408,6 @@ 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);
       t@@ -664,7 +663,7 @@ vacfilegetentries(VacFile *f, VtEntry *e, VtEntry *me)
                if(me){
                        if(f->msource == nil)
                                memset(me, 0, sizeof *me);
       -                if(getentry(f->msource, me) < 0){
       +                else if(getentry(f->msource, me) < 0){
                                filerunlock(f);
                                return -1;
                        }
 (DIR) diff --git a/src/cmd/vac/vac.c b/src/cmd/vac/vac.c
       t@@ -616,9 +616,9 @@ vacmerge(VacFile *fp, char *name)
                if(verbose)
                        fprint(2, "merging %s\n", name);
        
       -        de = vdeopen(fs->root);
       +        mp = vacfsgetroot(mfs);
       +        de = vdeopen(mp);
                if(de){
       -                mp = vacfsgetroot(mfs);
                        offset = 0;
                        if(vacfsgetmaxqid(mfs, &maxqid) >= 0){
                                _vacfsnextqid(fs, &offset);
       t@@ -636,8 +636,8 @@ vacmerge(VacFile *fp, char *name)
                                vdcleanup(&vd);
                        }
                        vdeclose(de);
       -                vacfiledecref(mp);
                }
       +        vacfiledecref(mp);
                vacfsclose(mfs);
                return 0;
        }