mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
mm/memory-failure: stop setting the folio error flag
Nobody checks the error flag any more, so setting it accomplishes nothing. Remove the obsolete parts of this comment; it hasn't been true since errseq_t was used to track writeback errors in 2017. Link: https://lkml.kernel.org/r/20240531032938.2712870-1-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Oscar Salvador <osalvador@suse.de> Acked-by: Miaohe Lin <linmiaohe@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
ba518f4d4b
commit
29e9412b25
@ -1112,7 +1112,6 @@ static int me_pagecache_dirty(struct page_state *ps, struct page *p)
|
||||
struct folio *folio = page_folio(p);
|
||||
struct address_space *mapping = folio_mapping(folio);
|
||||
|
||||
SetPageError(p);
|
||||
/* TBD: print more information about the file. */
|
||||
if (mapping) {
|
||||
/*
|
||||
@ -1120,34 +1119,6 @@ static int me_pagecache_dirty(struct page_state *ps, struct page *p)
|
||||
* who check the mapping.
|
||||
* This way the application knows that something went
|
||||
* wrong with its dirty file data.
|
||||
*
|
||||
* There's one open issue:
|
||||
*
|
||||
* The EIO will be only reported on the next IO
|
||||
* operation and then cleared through the IO map.
|
||||
* Normally Linux has two mechanisms to pass IO error
|
||||
* first through the AS_EIO flag in the address space
|
||||
* and then through the PageError flag in the page.
|
||||
* Since we drop pages on memory failure handling the
|
||||
* only mechanism open to use is through AS_AIO.
|
||||
*
|
||||
* This has the disadvantage that it gets cleared on
|
||||
* the first operation that returns an error, while
|
||||
* the PageError bit is more sticky and only cleared
|
||||
* when the page is reread or dropped. If an
|
||||
* application assumes it will always get error on
|
||||
* fsync, but does other operations on the fd before
|
||||
* and the page is dropped between then the error
|
||||
* will not be properly reported.
|
||||
*
|
||||
* This can already happen even without hwpoisoned
|
||||
* pages: first on metadata IO errors (which only
|
||||
* report through AS_EIO) or when the page is dropped
|
||||
* at the wrong time.
|
||||
*
|
||||
* So right now we assume that the application DTRT on
|
||||
* the first EIO, but we're not worse than other parts
|
||||
* of the kernel.
|
||||
*/
|
||||
mapping_set_error(mapping, -EIO);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user