mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-17 02:15:57 +00:00
nilfs2: do not output warnings when clearing dirty buffers
After detecting file system corruption and degrading to a read-only mount, dirty folios and buffers in the page cache are cleared, and a large number of warnings are output at that time, often filling up the kernel log. In this case, since the degrading to a read-only mount is output to the kernel log, these warnings are not very meaningful, and are rather a nuisance in system management and debugging. The related nilfs2-specific page/folio routines have a silent argument that suppresses the warning output, but since it is not currently used meaningfully, remove both the silent argument and the warning output. Link: https://lkml.kernel.org/r/20240816090128.4561-1-konishi.ryusuke@gmail.com Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
79785f7801
commit
299910dcb4
@ -162,7 +162,7 @@ static int nilfs_writepages(struct address_space *mapping,
|
||||
int err = 0;
|
||||
|
||||
if (sb_rdonly(inode->i_sb)) {
|
||||
nilfs_clear_dirty_pages(mapping, false);
|
||||
nilfs_clear_dirty_pages(mapping);
|
||||
return -EROFS;
|
||||
}
|
||||
|
||||
@ -186,7 +186,7 @@ static int nilfs_writepage(struct page *page, struct writeback_control *wbc)
|
||||
* have dirty pages that try to be flushed in background.
|
||||
* So, here we simply discard this dirty page.
|
||||
*/
|
||||
nilfs_clear_folio_dirty(folio, false);
|
||||
nilfs_clear_folio_dirty(folio);
|
||||
folio_unlock(folio);
|
||||
return -EROFS;
|
||||
}
|
||||
|
@ -411,7 +411,7 @@ nilfs_mdt_write_page(struct page *page, struct writeback_control *wbc)
|
||||
* have dirty folios that try to be flushed in background.
|
||||
* So, here we simply discard this dirty folio.
|
||||
*/
|
||||
nilfs_clear_folio_dirty(folio, false);
|
||||
nilfs_clear_folio_dirty(folio);
|
||||
folio_unlock(folio);
|
||||
return -EROFS;
|
||||
}
|
||||
@ -638,10 +638,10 @@ void nilfs_mdt_restore_from_shadow_map(struct inode *inode)
|
||||
if (mi->mi_palloc_cache)
|
||||
nilfs_palloc_clear_cache(inode);
|
||||
|
||||
nilfs_clear_dirty_pages(inode->i_mapping, true);
|
||||
nilfs_clear_dirty_pages(inode->i_mapping);
|
||||
nilfs_copy_back_pages(inode->i_mapping, shadow->inode->i_mapping);
|
||||
|
||||
nilfs_clear_dirty_pages(ii->i_assoc_inode->i_mapping, true);
|
||||
nilfs_clear_dirty_pages(ii->i_assoc_inode->i_mapping);
|
||||
nilfs_copy_back_pages(ii->i_assoc_inode->i_mapping,
|
||||
NILFS_I(shadow->inode)->i_assoc_inode->i_mapping);
|
||||
|
||||
|
@ -357,9 +357,8 @@ repeat:
|
||||
/**
|
||||
* nilfs_clear_dirty_pages - discard dirty pages in address space
|
||||
* @mapping: address space with dirty pages for discarding
|
||||
* @silent: suppress [true] or print [false] warning messages
|
||||
*/
|
||||
void nilfs_clear_dirty_pages(struct address_space *mapping, bool silent)
|
||||
void nilfs_clear_dirty_pages(struct address_space *mapping)
|
||||
{
|
||||
struct folio_batch fbatch;
|
||||
unsigned int i;
|
||||
@ -380,7 +379,7 @@ void nilfs_clear_dirty_pages(struct address_space *mapping, bool silent)
|
||||
* was acquired. Skip processing in that case.
|
||||
*/
|
||||
if (likely(folio->mapping == mapping))
|
||||
nilfs_clear_folio_dirty(folio, silent);
|
||||
nilfs_clear_folio_dirty(folio);
|
||||
|
||||
folio_unlock(folio);
|
||||
}
|
||||
@ -392,20 +391,13 @@ void nilfs_clear_dirty_pages(struct address_space *mapping, bool silent)
|
||||
/**
|
||||
* nilfs_clear_folio_dirty - discard dirty folio
|
||||
* @folio: dirty folio that will be discarded
|
||||
* @silent: suppress [true] or print [false] warning messages
|
||||
*/
|
||||
void nilfs_clear_folio_dirty(struct folio *folio, bool silent)
|
||||
void nilfs_clear_folio_dirty(struct folio *folio)
|
||||
{
|
||||
struct inode *inode = folio->mapping->host;
|
||||
struct super_block *sb = inode->i_sb;
|
||||
struct buffer_head *bh, *head;
|
||||
|
||||
BUG_ON(!folio_test_locked(folio));
|
||||
|
||||
if (!silent)
|
||||
nilfs_warn(sb, "discard dirty page: offset=%lld, ino=%lu",
|
||||
folio_pos(folio), inode->i_ino);
|
||||
|
||||
folio_clear_uptodate(folio);
|
||||
folio_clear_mappedtodisk(folio);
|
||||
|
||||
@ -419,11 +411,6 @@ void nilfs_clear_folio_dirty(struct folio *folio, bool silent)
|
||||
bh = head;
|
||||
do {
|
||||
lock_buffer(bh);
|
||||
if (!silent)
|
||||
nilfs_warn(sb,
|
||||
"discard dirty block: blocknr=%llu, size=%zu",
|
||||
(u64)bh->b_blocknr, bh->b_size);
|
||||
|
||||
set_mask_bits(&bh->b_state, clear_bits, 0);
|
||||
unlock_buffer(bh);
|
||||
} while (bh = bh->b_this_page, bh != head);
|
||||
|
@ -41,8 +41,8 @@ void nilfs_folio_bug(struct folio *);
|
||||
|
||||
int nilfs_copy_dirty_pages(struct address_space *, struct address_space *);
|
||||
void nilfs_copy_back_pages(struct address_space *, struct address_space *);
|
||||
void nilfs_clear_folio_dirty(struct folio *, bool);
|
||||
void nilfs_clear_dirty_pages(struct address_space *, bool);
|
||||
void nilfs_clear_folio_dirty(struct folio *folio);
|
||||
void nilfs_clear_dirty_pages(struct address_space *mapping);
|
||||
unsigned int nilfs_page_count_clean_buffers(struct page *, unsigned int,
|
||||
unsigned int);
|
||||
unsigned long nilfs_find_uncommitted_extent(struct inode *inode,
|
||||
|
Loading…
x
Reference in New Issue
Block a user