Merge branch 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
* 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits) HWPOISON: Enable error_remove_page on btrfs HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs HWPOISON: Add madvise() based injector for hardware poisoned pages v4 HWPOISON: Enable error_remove_page for NFS HWPOISON: Enable .remove_error_page for migration aware file systems HWPOISON: The high level memory error handler in the VM v7 HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process HWPOISON: shmem: call set_page_dirty() with locked page HWPOISON: Define a new error_remove_page address space op for async truncation HWPOISON: Add invalidate_inode_page HWPOISON: Refactor truncate to allow direct truncating of page v2 HWPOISON: check and isolate corrupted free pages v2 HWPOISON: Handle hardware poisoned pages in try_to_unmap HWPOISON: Use bitmask/action code for try_to_unmap behaviour HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2 HWPOISON: Add poison check to page fault handling HWPOISON: Add basic support for poisoned pages in fault handler v3 HWPOISON: Add new SIGBUS error codes for hardware poison signals HWPOISON: Add support for poison swap entries v2 HWPOISON: Export some rmap vma locking to outside world ...
This commit is contained in:
@ -5269,6 +5269,7 @@ static const struct address_space_operations btrfs_aops = {
|
||||
.invalidatepage = btrfs_invalidatepage,
|
||||
.releasepage = btrfs_releasepage,
|
||||
.set_page_dirty = btrfs_set_page_dirty,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations btrfs_symlink_aops = {
|
||||
|
@ -819,6 +819,7 @@ const struct address_space_operations ext2_aops = {
|
||||
.writepages = ext2_writepages,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
const struct address_space_operations ext2_aops_xip = {
|
||||
@ -837,6 +838,7 @@ const struct address_space_operations ext2_nobh_aops = {
|
||||
.direct_IO = ext2_direct_IO,
|
||||
.writepages = ext2_writepages,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -1830,6 +1830,7 @@ static const struct address_space_operations ext3_ordered_aops = {
|
||||
.direct_IO = ext3_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext3_writeback_aops = {
|
||||
@ -1845,6 +1846,7 @@ static const struct address_space_operations ext3_writeback_aops = {
|
||||
.direct_IO = ext3_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext3_journalled_aops = {
|
||||
@ -1859,6 +1861,7 @@ static const struct address_space_operations ext3_journalled_aops = {
|
||||
.invalidatepage = ext3_invalidatepage,
|
||||
.releasepage = ext3_releasepage,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
void ext3_set_aops(struct inode *inode)
|
||||
|
@ -3386,6 +3386,7 @@ static const struct address_space_operations ext4_ordered_aops = {
|
||||
.direct_IO = ext4_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext4_writeback_aops = {
|
||||
@ -3401,6 +3402,7 @@ static const struct address_space_operations ext4_writeback_aops = {
|
||||
.direct_IO = ext4_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext4_journalled_aops = {
|
||||
@ -3415,6 +3417,7 @@ static const struct address_space_operations ext4_journalled_aops = {
|
||||
.invalidatepage = ext4_invalidatepage,
|
||||
.releasepage = ext4_releasepage,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext4_da_aops = {
|
||||
@ -3431,6 +3434,7 @@ static const struct address_space_operations ext4_da_aops = {
|
||||
.direct_IO = ext4_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
void ext4_set_aops(struct inode *inode)
|
||||
|
@ -1135,6 +1135,7 @@ static const struct address_space_operations gfs2_writeback_aops = {
|
||||
.direct_IO = gfs2_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations gfs2_ordered_aops = {
|
||||
@ -1151,6 +1152,7 @@ static const struct address_space_operations gfs2_ordered_aops = {
|
||||
.direct_IO = gfs2_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations gfs2_jdata_aops = {
|
||||
@ -1166,6 +1168,7 @@ static const struct address_space_operations gfs2_jdata_aops = {
|
||||
.invalidatepage = gfs2_invalidatepage,
|
||||
.releasepage = gfs2_releasepage,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
void gfs2_set_aops(struct inode *inode)
|
||||
|
@ -525,6 +525,7 @@ const struct address_space_operations nfs_file_aops = {
|
||||
.direct_IO = nfs_direct_IO,
|
||||
.migratepage = nfs_migrate_page,
|
||||
.launder_page = nfs_launder_page,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -1550,6 +1550,7 @@ const struct address_space_operations ntfs_aops = {
|
||||
.migratepage = buffer_migrate_page, /* Move a page cache page from
|
||||
one physical page to an
|
||||
other. */
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -1569,6 +1570,7 @@ const struct address_space_operations ntfs_mst_aops = {
|
||||
.migratepage = buffer_migrate_page, /* Move a page cache page from
|
||||
one physical page to an
|
||||
other. */
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
#ifdef NTFS_RW
|
||||
|
@ -2022,4 +2022,5 @@ const struct address_space_operations ocfs2_aops = {
|
||||
.releasepage = ocfs2_releasepage,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
@ -97,7 +97,11 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
|
||||
"Committed_AS: %8lu kB\n"
|
||||
"VmallocTotal: %8lu kB\n"
|
||||
"VmallocUsed: %8lu kB\n"
|
||||
"VmallocChunk: %8lu kB\n",
|
||||
"VmallocChunk: %8lu kB\n"
|
||||
#ifdef CONFIG_MEMORY_FAILURE
|
||||
"HardwareCorrupted: %8lu kB\n"
|
||||
#endif
|
||||
,
|
||||
K(i.totalram),
|
||||
K(i.freeram),
|
||||
K(i.bufferram),
|
||||
@ -144,6 +148,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
|
||||
(unsigned long)VMALLOC_TOTAL >> 10,
|
||||
vmi.used >> 10,
|
||||
vmi.largest_chunk >> 10
|
||||
#ifdef CONFIG_MEMORY_FAILURE
|
||||
,atomic_long_read(&mce_bad_pages) << (PAGE_SHIFT - 10)
|
||||
#endif
|
||||
);
|
||||
|
||||
hugetlb_report_meminfo(m);
|
||||
|
@ -1635,4 +1635,5 @@ const struct address_space_operations xfs_address_space_operations = {
|
||||
.direct_IO = xfs_vm_direct_IO,
|
||||
.migratepage = buffer_migrate_page,
|
||||
.is_partially_uptodate = block_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
Reference in New Issue
Block a user