Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 297648 Details for
Bug 435291
LTC41974-Pages of a memory mapped NFS file get corrupted.
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
experimental patch 1 -- don't clean pages as aggressively in invalidate_inode_pages2_range
0009-BZ-435291-VM-don-t-clean-dirty-pages-in-invalidate.patch (text/plain), 2.19 KB, created by
Jeff Layton
on 2008-03-11 17:42:14 UTC
(
hide
)
Description:
experimental patch 1 -- don't clean pages as aggressively in invalidate_inode_pages2_range
Filename:
MIME Type:
Creator:
Jeff Layton
Created:
2008-03-11 17:42:14 UTC
Size:
2.19 KB
patch
obsolete
>From 615246f3a1d2d0dad69a7eaadc692deba9a6b742 Mon Sep 17 00:00:00 2001 >From: Jeff Layton <jlayton@redhat.com> >Date: Tue, 11 Mar 2008 12:36:00 -0400 >Subject: [PATCH] BZ#435291: VM: don't clean dirty pages in invalidate_inode_pages2 > >This delta was cherry-picked from this upstream patch: > > commit fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9 > Author: Linus Torvalds <torvalds@woody.osdl.org> > Date: Wed Dec 20 13:46:42 2006 -0800 > > VM: Remove "clear_page_dirty()" and "test_clear_page_dirty()" > functions > >The problem is this: > >nfs_revalidate_inode() will call nfs_sync_mapping() and then call >invalidate_inode_pages2() once it returns. This is racy, however. It's >possible for the page to be dirtied after the writeback occurs. > >invalidate_inode_pages2_range() will then unmap the page, and clear the >dirty bit. Then iff invalidate_complete_page2() returns error do we >reset the dirty bit and return error. There are many legitimate >situations where that won't return error, and in those situations the >data in the now dirty page just ends up being discarded. > >This seems wrong to me. If the page is found to be dirty at that point, >we should be returning error if it can't be properly invalidated. This >patch gets rid of this clean/redirty logic and just has >invalidate_complete_page2() be called on the page with the dirty bit >still set. >--- > mm/truncate.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > >diff --git a/mm/truncate.c b/mm/truncate.c >index 2599770..9bd0315 100644 >--- a/mm/truncate.c >+++ b/mm/truncate.c >@@ -343,7 +343,6 @@ int invalidate_inode_pages2_range(struct address_space *mapping, > for (i = 0; !ret && i < pagevec_count(&pvec); i++) { > struct page *page = pvec.pages[i]; > pgoff_t page_index; >- int was_dirty; > > lock_page(page); > if (page->mapping != mapping) { >@@ -379,12 +378,8 @@ int invalidate_inode_pages2_range(struct address_space *mapping, > PAGE_CACHE_SIZE, 0); > } > } >- was_dirty = test_clear_page_dirty(page); >- if (!invalidate_complete_page2(mapping, page)) { >- if (was_dirty) >- set_page_dirty(page); >+ if (!invalidate_complete_page2(mapping, page)) > ret = -EIO; >- } > unlock_page(page); > } > pagevec_release(&pvec); >-- >1.5.3.6 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 435291
:
296231
|
296232
|
297648
|
297649
|
298407
|
306161
|
309133