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