Re: [PATCH 008 of 8] md/bitmap: Change md/bitmap file handling to use bmap to file blocks.

Andrew Morton
2006-05-14T11:25:54Z

Neil Brown <neilb@suse.de> wrote:
>
> On Saturday May 13, akpm@osdl.org wrote:
> > Paul Clements <paul.clements@steeleye.com> wrote:
> > >
> > > Andrew Morton wrote:
> > >
> > > > The loss of pagecache coherency seems sad. I assume there's never a
> > > > requirement for userspace to read this file.
> > >
> > > Actually, there is. mdadm reads the bitmap file, so that would be
> > > broken. Also, it's just useful for a user to be able to read the bitmap
> > > (od -x, or similar) to figure out approximately how much more he's got
> > > to resync to get an array in-sync. Other than reading the bitmap file, I
> > > don't know of any way to determine that.
> >
> > Read it with O_DIRECT :(
>
> Which is exactly what the next release of mdadm does.
> As the patch comment said:
>
> : With this approach the pagecache may contain data which is inconsistent with
> : what is on disk. To alleviate the problems this can cause, md invalidates
> : the pagecache when releasing the file. If the file is to be examined
> : while the array is active (a non-critical but occasionally useful function),
> : O_DIRECT io must be used. And new version of mdadm will have support for this.

Which doesn't help `od -x' and is going to cause older mdadm userspace to
mysteriously and subtly fail. Or does the user<->kernel interface have
versioning which will prevent this?