From 3f1f06c5d12b24c4061e5123acabf72348ff45a2 Mon Sep 17 00:00:00 2001 From: "Charles.Forsyth" Date: Wed, 16 Jan 2008 13:39:58 +0000 Subject: 20080116-1340 --- appl/cmd/memfs.b | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'appl/cmd/memfs.b') diff --git a/appl/cmd/memfs.b b/appl/cmd/memfs.b index e18388c5..20ccdc64 100644 --- a/appl/cmd/memfs.b +++ b/appl/cmd/memfs.b @@ -217,7 +217,7 @@ memfs(maxsz : int, tc : chan of ref Tmsg, srv : ref Styxserver, sync: chan of in c.mode = tm.mode; c.qid.vers = mf.qid.vers; mf.nopen++; - if (tm.mode & OTRUNC) { + if ((tm.mode & OTRUNC) && !(mf.perm & Sys->DMAPPEND)) { # OTRUNC cannot be set for a directory # always at least one blk so don't need to check fs limit freeblks += (len mf.data); @@ -321,7 +321,7 @@ memfs(maxsz : int, tc : chan of ref Tmsg, srv : ref Styxserver, sync: chan of in } srv.reply(ref Rmsg.Clunk(tm.tag)); Stat => - (err, c, mf) := fidtomf(srv, qhash, tm.fid); + (err, nil, mf) := fidtomf(srv, qhash, tm.fid); if (err != nil) { srv.reply(ref Rmsg.Error(tm.tag, err)); continue; @@ -354,7 +354,7 @@ memfs(maxsz : int, tc : chan of ref Tmsg, srv : ref Styxserver, sync: chan of in Wstat => (err, c, mf) := fidtomf(srv, qhash, tm.fid); stat := tm.stat; - perm := mf.perm & ~Sys->DMDIR; + if (err == nil && stat.name != mf.name) { parent := mf.parent; if (!modeok(OWRITE, parent.perm, c.uname, parent.owner)) -- cgit v1.2.3