Skip site navigation (1)Skip section navigation (2)
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>