Date: Fri, 29 Oct 2004 13:30:38 -0600 (MDT) From: Siddharth Aggarwal <saggarwa@cs.utah.edu> To: Don Lewis <truckman@FreeBSD.org> Cc: freebsd-hackers@FreeBSD.org Subject: Re: flushing disk buffer cache Message-ID: <Pine.GSO.4.50L0.0410291326580.28852-100000@faith.cs.utah.edu> In-Reply-To: <200410291904.i9TJ1u0A026971@gw.catspoiler.org> References: <200410291904.i9TJ1u0A026971@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for your reply. Hmm. At the moment, the user can send an ioctl to define a checkpoint. But I would guess that this could happen between 2 strategy() function calls corresponding to the same filesystem operation? So if there a way to block filesystem operations while a snapshot is taken? I can't unmount an active filesystem before the snapshot and remount it after. Any suggestions? On Fri, 29 Oct 2004, Don Lewis wrote: > On 29 Oct, Siddharth Aggarwal wrote: > > > > Another related question ... > > > > Is it possible to delay or queue up disk writes until I exit from my > > function in the kernel (where I am trying to sync with the disk)? Or > > make sure that my sync function never goes to sleep waiting for the disk > > driver to signal completion of flushes to disk? > > Take a look at how the snapshot code handles this. It has to be done > above the level of individual disk operations because certain file > system operations require multiple disk I/O operations to transform the > file system from one consistent state to another consistent state. If > you try to checkpoint in the middle of this sequence, you will capture a > state where the file system is internally inconsistent. > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.50L0.0410291326580.28852-100000>