On Wed, May 12, 2004 at 04:18:27PM +1000, Nigel Cunningham wrote:
> 'scuse my ignorance, but why in the world is it a bad thing to run dd (dd
> if=/devhda1 of=/dev/null) on a mounted filesystem with XFS?
The way XFS manages metadata buffers is not coherent with concurrent
direct block device access (the block device filesystem is expecting
filesystems to be attaching buffer_heads to pages and observing the
locking semantics of operating that way, which pagebuf is not - so,
reading from the device populates the page cache with data from the
device inode and can inadvertently corrupt XFS's view of the world).
Christoph has been working on fixing that up in 2.6, he'll have the
gory details if you're curious. (actually, Christoph/Steve - do we
have to use bdev->bd_inode->i_mapping as the buftarg mapping? what
if we fudged that mapping, then our pages wouldn't overlap with the
block device inode pages - wouldn't that work around this? maybe
Russells hack^Widea of using multiple metadata mappings to overcome
the pagecache size limits would be helped there too...?)
> On Wed, 12 May 2004 14:39, Nathan Scott wrote:
> > You were running dd on the block device at the same time as using
> > the mounted filesystem though, weren't you? Did problems persist
> > after you stopped doing that? You didn't get back to us with any
> > further details there..