address_space_operations
Regular
4.4
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *, loff_t);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
4.8
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
4.10
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
4.13
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
4.15
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
4.18
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.0
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.3
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.4
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.8
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.11
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.13
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.15
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
5.19
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*read_folio)(struct file *, struct folio *);
int (*writepages)(struct address_space *, struct writeback_control *);
bool (*dirty_folio)(struct address_space *, struct folio *);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidate_folio)(struct folio *, size_t, size_t);
bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_folio)(struct folio *);
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
int (*swap_rw)(struct kiocb *, struct iov_iter *);
};
6.2
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*read_folio)(struct file *, struct folio *);
int (*writepages)(struct address_space *, struct writeback_control *);
bool (*dirty_folio)(struct address_space *, struct folio *);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidate_folio)(struct folio *, size_t, size_t);
bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
int (*launder_folio)(struct folio *);
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
int (*swap_rw)(struct kiocb *, struct iov_iter *);
};
6.5
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*read_folio)(struct file *, struct folio *);
int (*writepages)(struct address_space *, struct writeback_control *);
bool (*dirty_folio)(struct address_space *, struct folio *);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidate_folio)(struct folio *, size_t, size_t);
bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
int (*launder_folio)(struct folio *);
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
int (*swap_rw)(struct kiocb *, struct iov_iter *);
};
6.8
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*read_folio)(struct file *, struct folio *);
int (*writepages)(struct address_space *, struct writeback_control *);
bool (*dirty_folio)(struct address_space *, struct folio *);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidate_folio)(struct folio *, size_t, size_t);
bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
int (*launder_folio)(struct folio *);
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
int (*error_remove_folio)(struct address_space *, struct folio *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
int (*swap_rw)(struct kiocb *, struct iov_iter *);
};
arm64
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
armhf
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
ppc64el
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
riscv64
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
aws
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
azure
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
gcp
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
lowlatency
: ✅struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*readpage)(struct file *, struct page *);
int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *);
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidatepage)(struct page *, unsigned int, unsigned int);
int (*releasepage)(struct page *, gfp_t);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode);
bool (*isolate_page)(struct page *, isolate_mode_t);
void (*putback_page)(struct page *);
int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int);
void (*is_dirty_writeback)(struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
};
Regular
4.4
and 4.8
⚠️bool (*isolate_page)(struct page *, isolate_mode_t)
void (*putback_page)(struct page *)
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *, loff_t)
➡️ ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *)
4.8
and 4.10
✅
4.10
and 4.13
✅
4.13
and 4.15
✅
4.15
and 4.18
✅
4.18
and 5.0
✅
5.0
and 5.3
✅
5.3
and 5.4
✅
5.4
and 5.8
⚠️void (*readahead)(struct readahead_control *)
5.8
and 5.11
✅
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
⚠️int (*read_folio)(struct file *, struct folio *)
bool (*dirty_folio)(struct address_space *, struct folio *)
void (*invalidate_folio)(struct folio *, size_t, size_t)
bool (*release_folio)(struct folio *, gfp_t)
void (*free_folio)(struct folio *)
int (*launder_folio)(struct folio *)
int (*swap_rw)(struct kiocb *, struct iov_iter *)
int (*readpage)(struct file *, struct page *)
int (*set_page_dirty)(struct page *)
int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int)
void (*invalidatepage)(struct page *, unsigned int, unsigned int)
int (*releasepage)(struct page *, gfp_t)
void (*freepage)(struct page *)
int (*launder_page)(struct page *)
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page **, void **)
➡️ int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **)
int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int)
➡️ bool (*is_partially_uptodate)(struct folio *, size_t, size_t)
void (*is_dirty_writeback)(struct page *, bool *, bool *)
➡️ void (*is_dirty_writeback)(struct folio *, bool *, bool *)
5.19
and 6.2
⚠️int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode)
int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode)
bool (*isolate_page)(struct page *, isolate_mode_t)
void (*putback_page)(struct page *)
6.2
and 6.5
✅
6.5
and 6.8
⚠️int (*error_remove_folio)(struct address_space *, struct folio *)
int (*error_remove_page)(struct address_space *, struct page *)
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅