Date: Fri, 25 Sep 1998 10:11:57 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: "Robert V. Baron" <rvb@cs.cmu.edu> Cc: Luoqi Chen <luoqi@watermarkgroup.com>, committers@freebsd.org, dillon@backplane.com Subject: Re: Having some serious file write / mmap inconsistancy problems Message-ID: <Pine.BSF.4.01.9809251010580.845-100000@herring.nlsystems.com> In-Reply-To: <yzsu31x7wn8.fsf@sicily.odyssey.cs.cmu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 24 Sep 1998, Robert V. Baron wrote: > > I have a possibly similar possibly different problem that could be > explained (I think) with this sort of an inconsistency. I have a file > system (Coda). Its vnodes contain Coda state but also contain the > vnode of a cache file (typically ufs). So when you do open/close you > open both vnodes and when you do read/write on a Coda vnode, you > reapply the operation to the ufs vnode. So now consider copying a > file from somewhere (say even coda) into coda. The copy will diff the > same. But cmp different (cmp uses mmap). ALso you can not execute > the file because the data is garbled (maping again). Again diff works > fine. Ok so somehow I've managed to separate the object from the > vnode (more on that later). But I lied/simplified before; sometimes > the copies cmp and execute fine. What I don't totally understand at > all, is that if I do several copies in a row. Some will work and some > will not and it seems to be in runs. This sounds like a perfect > opporunity of losing some dirty bits. > > NOTE: > There is an added complexity here, because we're probably mapping the > object associated with the Coda vnode (not the ufs vnode). So having > two objects involved might be my problem. But I really can not > understand why it would be intermittent. Have you implemented VOP_GETPAGES? I fixed something like this in NFS many moons ago by implementing VOP_GETPAGES. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891 Fax: +44 181 381 1039
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.01.9809251010580.845-100000>