flushing disk buffer cache

Siddharth Aggarwal saggarwa at cs.utah.edu
Fri Oct 29 12:30:56 PDT 2004


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.
>
>
>


More information about the freebsd-hackers mailing list