ndb/dns: initialize unknown fids to point to the root qid
the dns file service can be restarted, which causes it to forget all fid state. given the simple file system structure of the dns service (just a single dns file), we can assume that rpcs on a unknown fid refers to the root, so the mountpoint will stay valid and /net/dns can be reopend avoiding the need for a remount of the dns service after restart.
This commit is contained in:
parent
258fe87faf
commit
b31cc134e7
1 changed files with 5 additions and 2 deletions
|
@ -320,7 +320,10 @@ newfid(int fid, int needunused)
|
|||
}
|
||||
mf = emalloc(sizeof(*mf));
|
||||
mf->fid = fid;
|
||||
mf->user = estrdup("dummy");
|
||||
mf->qid.vers = vers;
|
||||
mf->qid.type = QTDIR;
|
||||
mf->qid.path = 0LL;
|
||||
mf->user = estrdup("none");
|
||||
mf->next = mfalloc.inuse;
|
||||
mfalloc.inuse = mf;
|
||||
unlock(&mfalloc);
|
||||
|
@ -355,7 +358,7 @@ copyfid(Mfile *mf, int fid)
|
|||
if(nmf == nil)
|
||||
return nil;
|
||||
nmf->fid = fid;
|
||||
free(nmf->user); /* estrdup("dummy") */
|
||||
free(nmf->user); /* estrdup("none") */
|
||||
nmf->user = estrdup(mf->user);
|
||||
nmf->qid.type = mf->qid.type;
|
||||
nmf->qid.path = mf->qid.path;
|
||||
|
|
Loading…
Reference in a new issue