Re: fs: page cache wrongly left invalidated after revalidate_disk

From: Andrew Morton
Date: Wed Oct 24 2012 - 19:38:56 EST


On Wed, 24 Oct 2012 09:44:23 -0400
Jeff Moyer <jmoyer@xxxxxxxxxx> wrote:

> MITSUNARI Shigeo <herumi@xxxxxxxxx> writes:
>
> > Hi,
> >
> > We found that bdev->bd_invalidated was left set once revalidate_disk()
> > is called, which results in page cache flush every time that device
> > is open.
> >
> > Specifically, we found this problem in MD block device. Once we
> > resize a MD device, mdadm --monitor periodically flush all page cache
> > for that device every 60 or 1000 seconds when it opens the device.
> >
> > This bug lies since at least 3.2.0 till the latest kernel(3.6.2).
> > Patch is attached.
> >
> > Anyone please review this? Thanks in advance.
>
> rescan_partitions (called in the bdev open path) should reset
> bd_invalidated. I think you need to dig into why that isn't happening.

I suspect it's because I_NEW is no longer set on the inode.

I queued this one for some viro attention ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/