[lkml]   [2010]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Wrong DIF guard tag on ext2 write
    On Fri 04-06-10 12:02:43, Dave Chinner wrote:
    > On Thu, Jun 03, 2010 at 11:46:34AM -0400, Chris Mason wrote:
    > > On Wed, Jun 02, 2010 at 11:41:21PM +1000, Nick Piggin wrote:
    > > > Closing the while it is dirty, while it is being written back window
    > > > still leaves a pretty big window. Also, how do you handle mmap writes?
    > > > Write protect and checksum the destination page after every store? Or
    > > > leave some window between when the pagecache is dirtied and when it is
    > > > written back? So I don't know whether it's worth putting a lot of effort
    > > > into this case.
    > >
    > > So, changing gears to how do we protect filesystem page cache pages
    > > instead of the generic idea of dif/dix, btrfs crcs just before writing,
    > > which does leave a pretty big window for the page to get corrupted.
    > > The storage layer shouldn't care or know about that though, we hand it a
    > > crc and it makes sure data matching that crc goes to the media.
    > I think the only way to get accurate CRCs is to stop modifications
    > from occurring while the page is under writeback. i.e. when a page
    > transitions from dirty to writeback we need to unmap any writable
    > mappings on the page, and then any new modifications (either by the
    > write() path or through ->fault) need to block waiting for
    > page writeback to complete before they can proceed...
    Actually, we already write-protect the page in clear_page_dirty_for_io
    so the first part already happens. Any filesystem can do
    wait_on_page_writeback() in its ->page_mkwrite function so even the second
    part shouldn't be hard. I'm just a bit worried about the performance
    implications / hidden deadlocks...
    Also we'd have to wait_on_page_writeback() in ->write_begin function to
    protect against ordinary writes but that's the easy part...

    Jan Kara <>
    SUSE Labs, CR

     \ /
      Last update: 2010-06-04 17:35    [W:0.019 / U:7.804 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site