Selaa lähdekoodia

[PATCH] mark address_space_operations const

Same as with already do with the file operations: keep them in .rodata and
prevents people from doing runtime patching.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Steven French <sfrench@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Christoph Hellwig 19 vuotta sitten
vanhempi
commit
f5e54d6e53
89 muutettua tiedostoa jossa 121 lisäystä ja 121 poistoa
  1. 2 2
      drivers/block/loop.c
  2. 1 1
      drivers/block/rd.c
  3. 1 1
      fs/9p/v9fs_vfs.h
  4. 1 1
      fs/9p/vfs_addr.c
  5. 1 1
      fs/adfs/inode.c
  6. 3 3
      fs/affs/affs.h
  7. 2 2
      fs/affs/file.c
  8. 1 1
      fs/affs/symlink.c
  9. 1 1
      fs/afs/file.c
  10. 1 1
      fs/afs/internal.h
  11. 1 1
      fs/befs/linuxvfs.c
  12. 1 1
      fs/bfs/bfs.h
  13. 1 1
      fs/bfs/file.c
  14. 1 1
      fs/block_dev.c
  15. 1 1
      fs/buffer.c
  16. 2 2
      fs/cifs/cifsfs.h
  17. 2 2
      fs/cifs/file.c
  18. 1 1
      fs/coda/symlink.c
  19. 1 1
      fs/configfs/inode.c
  20. 2 2
      fs/cramfs/inode.c
  21. 1 1
      fs/efs/inode.c
  22. 1 1
      fs/efs/symlink.c
  23. 3 3
      fs/ext2/ext2.h
  24. 3 3
      fs/ext2/inode.c
  25. 3 3
      fs/ext3/inode.c
  26. 1 1
      fs/fat/inode.c
  27. 1 1
      fs/freevxfs/vxfs_immed.c
  28. 3 3
      fs/freevxfs/vxfs_inode.c
  29. 1 1
      fs/freevxfs/vxfs_subr.c
  30. 1 1
      fs/fuse/file.c
  31. 2 2
      fs/hfs/hfs_fs.h
  32. 2 2
      fs/hfs/inode.c
  33. 2 2
      fs/hfsplus/hfsplus_fs.h
  34. 2 2
      fs/hfsplus/inode.c
  35. 3 3
      fs/hostfs/hostfs_kern.c
  36. 1 1
      fs/hpfs/file.c
  37. 2 2
      fs/hpfs/hpfs_fn.h
  38. 1 1
      fs/hpfs/namei.c
  39. 2 2
      fs/hugetlbfs/inode.c
  40. 1 1
      fs/inode.c
  41. 1 1
      fs/isofs/compress.c
  42. 1 1
      fs/isofs/inode.c
  43. 1 1
      fs/isofs/isofs.h
  44. 1 1
      fs/isofs/rock.c
  45. 1 1
      fs/isofs/zisofs.h
  46. 2 2
      fs/jffs/inode-v23.c
  47. 1 1
      fs/jffs2/file.c
  48. 1 1
      fs/jffs2/os-linux.h
  49. 1 1
      fs/jfs/inode.c
  50. 1 1
      fs/jfs/jfs_inode.h
  51. 1 1
      fs/jfs/jfs_metapage.c
  52. 1 1
      fs/jfs/jfs_metapage.h
  53. 1 1
      fs/minix/inode.c
  54. 1 1
      fs/ncpfs/inode.c
  55. 1 1
      fs/ncpfs/symlink.c
  56. 1 1
      fs/nfs/file.c
  57. 2 2
      fs/ntfs/aops.c
  58. 2 2
      fs/ntfs/ntfs.h
  59. 1 1
      fs/ocfs2/aops.c
  60. 1 1
      fs/ocfs2/inode.h
  61. 1 1
      fs/qnx4/inode.c
  62. 1 1
      fs/ramfs/file-mmu.c
  63. 1 1
      fs/ramfs/file-nommu.c
  64. 1 1
      fs/ramfs/internal.h
  65. 1 1
      fs/reiserfs/inode.c
  66. 1 1
      fs/romfs/inode.c
  67. 1 1
      fs/smbfs/file.c
  68. 1 1
      fs/smbfs/proto.h
  69. 1 1
      fs/sysfs/inode.c
  70. 1 1
      fs/sysv/itree.c
  71. 1 1
      fs/sysv/sysv.h
  72. 1 1
      fs/udf/file.c
  73. 1 1
      fs/udf/inode.c
  74. 1 1
      fs/udf/symlink.c
  75. 3 3
      fs/udf/udfdecl.h
  76. 1 1
      fs/ufs/inode.c
  77. 1 1
      fs/xfs/linux-2.6/xfs_aops.c
  78. 1 1
      fs/xfs/linux-2.6/xfs_aops.h
  79. 1 1
      fs/xfs/linux-2.6/xfs_buf.c
  80. 2 2
      include/linux/coda_linux.h
  81. 1 1
      include/linux/efs_fs.h
  82. 2 2
      include/linux/fs.h
  83. 1 1
      include/linux/nfs_fs.h
  84. 1 1
      include/linux/reiserfs_fs.h
  85. 1 1
      include/linux/ufs_fs.h
  86. 2 2
      mm/filemap.c
  87. 1 1
      mm/filemap_xip.c
  88. 2 2
      mm/shmem.c
  89. 1 1
      mm/swap_state.c

+ 2 - 2
drivers/block/loop.c

@@ -210,7 +210,7 @@ static int do_lo_send_aops(struct loop_device *lo, struct bio_vec *bvec,
 {
 {
 	struct file *file = lo->lo_backing_file; /* kudos to NFsckingS */
 	struct file *file = lo->lo_backing_file; /* kudos to NFsckingS */
 	struct address_space *mapping = file->f_mapping;
 	struct address_space *mapping = file->f_mapping;
-	struct address_space_operations *aops = mapping->a_ops;
+	const struct address_space_operations *aops = mapping->a_ops;
 	pgoff_t index;
 	pgoff_t index;
 	unsigned offset, bv_offs;
 	unsigned offset, bv_offs;
 	int len, ret;
 	int len, ret;
@@ -784,7 +784,7 @@ static int loop_set_fd(struct loop_device *lo, struct file *lo_file,
 
 
 	error = -EINVAL;
 	error = -EINVAL;
 	if (S_ISREG(inode->i_mode) || S_ISBLK(inode->i_mode)) {
 	if (S_ISREG(inode->i_mode) || S_ISBLK(inode->i_mode)) {
-		struct address_space_operations *aops = mapping->a_ops;
+		const struct address_space_operations *aops = mapping->a_ops;
 		/*
 		/*
 		 * If we can't read - sorry. If we only can't write - well,
 		 * If we can't read - sorry. If we only can't write - well,
 		 * it's going to be read-only.
 		 * it's going to be read-only.

+ 1 - 1
drivers/block/rd.c

@@ -191,7 +191,7 @@ static int ramdisk_set_page_dirty(struct page *page)
 	return 0;
 	return 0;
 }
 }
 
 
-static struct address_space_operations ramdisk_aops = {
+static const struct address_space_operations ramdisk_aops = {
 	.readpage	= ramdisk_readpage,
 	.readpage	= ramdisk_readpage,
 	.prepare_write	= ramdisk_prepare_write,
 	.prepare_write	= ramdisk_prepare_write,
 	.commit_write	= ramdisk_commit_write,
 	.commit_write	= ramdisk_commit_write,

+ 1 - 1
fs/9p/v9fs_vfs.h

@@ -38,7 +38,7 @@
  */
  */
 
 
 extern struct file_system_type v9fs_fs_type;
 extern struct file_system_type v9fs_fs_type;
-extern struct address_space_operations v9fs_addr_operations;
+extern const struct address_space_operations v9fs_addr_operations;
 extern const struct file_operations v9fs_file_operations;
 extern const struct file_operations v9fs_file_operations;
 extern const struct file_operations v9fs_dir_operations;
 extern const struct file_operations v9fs_dir_operations;
 extern struct dentry_operations v9fs_dentry_operations;
 extern struct dentry_operations v9fs_dentry_operations;

+ 1 - 1
fs/9p/vfs_addr.c

@@ -103,6 +103,6 @@ UnmapAndUnlock:
 	return retval;
 	return retval;
 }
 }
 
 
-struct address_space_operations v9fs_addr_operations = {
+const struct address_space_operations v9fs_addr_operations = {
       .readpage = v9fs_vfs_readpage,
       .readpage = v9fs_vfs_readpage,
 };
 };

+ 1 - 1
fs/adfs/inode.c

@@ -72,7 +72,7 @@ static sector_t _adfs_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping, block, adfs_get_block);
 	return generic_block_bmap(mapping, block, adfs_get_block);
 }
 }
 
 
-static struct address_space_operations adfs_aops = {
+static const struct address_space_operations adfs_aops = {
 	.readpage	= adfs_readpage,
 	.readpage	= adfs_readpage,
 	.writepage	= adfs_writepage,
 	.writepage	= adfs_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 3 - 3
fs/affs/affs.h

@@ -195,9 +195,9 @@ extern struct inode_operations   affs_symlink_inode_operations;
 extern const struct file_operations	 affs_file_operations;
 extern const struct file_operations	 affs_file_operations;
 extern const struct file_operations	 affs_file_operations_ofs;
 extern const struct file_operations	 affs_file_operations_ofs;
 extern const struct file_operations	 affs_dir_operations;
 extern const struct file_operations	 affs_dir_operations;
-extern struct address_space_operations	 affs_symlink_aops;
-extern struct address_space_operations	 affs_aops;
-extern struct address_space_operations	 affs_aops_ofs;
+extern const struct address_space_operations	 affs_symlink_aops;
+extern const struct address_space_operations	 affs_aops;
+extern const struct address_space_operations	 affs_aops_ofs;
 
 
 extern struct dentry_operations	 affs_dentry_operations;
 extern struct dentry_operations	 affs_dentry_operations;
 extern struct dentry_operations	 affs_dentry_operations_intl;
 extern struct dentry_operations	 affs_dentry_operations_intl;

+ 2 - 2
fs/affs/file.c

@@ -406,7 +406,7 @@ static sector_t _affs_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,affs_get_block);
 	return generic_block_bmap(mapping,block,affs_get_block);
 }
 }
-struct address_space_operations affs_aops = {
+const struct address_space_operations affs_aops = {
 	.readpage = affs_readpage,
 	.readpage = affs_readpage,
 	.writepage = affs_writepage,
 	.writepage = affs_writepage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,
@@ -759,7 +759,7 @@ out:
 	goto done;
 	goto done;
 }
 }
 
 
-struct address_space_operations affs_aops_ofs = {
+const struct address_space_operations affs_aops_ofs = {
 	.readpage = affs_readpage_ofs,
 	.readpage = affs_readpage_ofs,
 	//.writepage = affs_writepage_ofs,
 	//.writepage = affs_writepage_ofs,
 	//.sync_page = affs_sync_page_ofs,
 	//.sync_page = affs_sync_page_ofs,

+ 1 - 1
fs/affs/symlink.c

@@ -66,7 +66,7 @@ fail:
 	return err;
 	return err;
 }
 }
 
 
-struct address_space_operations affs_symlink_aops = {
+const struct address_space_operations affs_symlink_aops = {
 	.readpage	= affs_symlink_readpage,
 	.readpage	= affs_symlink_readpage,
 };
 };
 
 

+ 1 - 1
fs/afs/file.c

@@ -35,7 +35,7 @@ struct inode_operations afs_file_inode_operations = {
 	.getattr	= afs_inode_getattr,
 	.getattr	= afs_inode_getattr,
 };
 };
 
 
-struct address_space_operations afs_fs_aops = {
+const struct address_space_operations afs_fs_aops = {
 	.readpage	= afs_file_readpage,
 	.readpage	= afs_file_readpage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,
 	.set_page_dirty	= __set_page_dirty_nobuffers,
 	.set_page_dirty	= __set_page_dirty_nobuffers,

+ 1 - 1
fs/afs/internal.h

@@ -69,7 +69,7 @@ extern const struct file_operations afs_dir_file_operations;
 /*
 /*
  * file.c
  * file.c
  */
  */
-extern struct address_space_operations afs_fs_aops;
+extern const struct address_space_operations afs_fs_aops;
 extern struct inode_operations afs_file_inode_operations;
 extern struct inode_operations afs_file_inode_operations;
 
 
 #ifdef AFS_CACHING_SUPPORT
 #ifdef AFS_CACHING_SUPPORT

+ 1 - 1
fs/befs/linuxvfs.c

@@ -73,7 +73,7 @@ static struct inode_operations befs_dir_inode_operations = {
 	.lookup		= befs_lookup,
 	.lookup		= befs_lookup,
 };
 };
 
 
-static struct address_space_operations befs_aops = {
+static const struct address_space_operations befs_aops = {
 	.readpage	= befs_readpage,
 	.readpage	= befs_readpage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,
 	.bmap		= befs_bmap,
 	.bmap		= befs_bmap,

+ 1 - 1
fs/bfs/bfs.h

@@ -50,7 +50,7 @@ static inline struct bfs_inode_info *BFS_I(struct inode *inode)
 /* file.c */
 /* file.c */
 extern struct inode_operations bfs_file_inops;
 extern struct inode_operations bfs_file_inops;
 extern const struct file_operations bfs_file_operations;
 extern const struct file_operations bfs_file_operations;
-extern struct address_space_operations bfs_aops;
+extern const struct address_space_operations bfs_aops;
 
 
 /* dir.c */
 /* dir.c */
 extern struct inode_operations bfs_dir_inops;
 extern struct inode_operations bfs_dir_inops;

+ 1 - 1
fs/bfs/file.c

@@ -153,7 +153,7 @@ static sector_t bfs_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping, block, bfs_get_block);
 	return generic_block_bmap(mapping, block, bfs_get_block);
 }
 }
 
 
-struct address_space_operations bfs_aops = {
+const struct address_space_operations bfs_aops = {
 	.readpage	= bfs_readpage,
 	.readpage	= bfs_readpage,
 	.writepage	= bfs_writepage,
 	.writepage	= bfs_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 1 - 1
fs/block_dev.c

@@ -1095,7 +1095,7 @@ static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
 	return blkdev_ioctl(file->f_mapping->host, file, cmd, arg);
 	return blkdev_ioctl(file->f_mapping->host, file, cmd, arg);
 }
 }
 
 
-struct address_space_operations def_blk_aops = {
+const struct address_space_operations def_blk_aops = {
 	.readpage	= blkdev_readpage,
 	.readpage	= blkdev_readpage,
 	.writepage	= blkdev_writepage,
 	.writepage	= blkdev_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 1 - 1
fs/buffer.c

@@ -2598,7 +2598,7 @@ int nobh_truncate_page(struct address_space *mapping, loff_t from)
 	unsigned offset = from & (PAGE_CACHE_SIZE-1);
 	unsigned offset = from & (PAGE_CACHE_SIZE-1);
 	unsigned to;
 	unsigned to;
 	struct page *page;
 	struct page *page;
-	struct address_space_operations *a_ops = mapping->a_ops;
+	const struct address_space_operations *a_ops = mapping->a_ops;
 	char *kaddr;
 	char *kaddr;
 	int ret = 0;
 	int ret = 0;
 
 

+ 2 - 2
fs/cifs/cifsfs.h

@@ -32,8 +32,8 @@
 #define TRUE 1
 #define TRUE 1
 #endif
 #endif
 
 
-extern struct address_space_operations cifs_addr_ops;
-extern struct address_space_operations cifs_addr_ops_smallbuf;
+extern const struct address_space_operations cifs_addr_ops;
+extern const struct address_space_operations cifs_addr_ops_smallbuf;
 
 
 /* Functions related to super block operations */
 /* Functions related to super block operations */
 extern struct super_operations cifs_super_ops;
 extern struct super_operations cifs_super_ops;

+ 2 - 2
fs/cifs/file.c

@@ -1942,7 +1942,7 @@ static int cifs_prepare_write(struct file *file, struct page *page,
 	return 0;
 	return 0;
 }
 }
 
 
-struct address_space_operations cifs_addr_ops = {
+const struct address_space_operations cifs_addr_ops = {
 	.readpage = cifs_readpage,
 	.readpage = cifs_readpage,
 	.readpages = cifs_readpages,
 	.readpages = cifs_readpages,
 	.writepage = cifs_writepage,
 	.writepage = cifs_writepage,
@@ -1959,7 +1959,7 @@ struct address_space_operations cifs_addr_ops = {
  * contain the header plus one complete page of data.  Otherwise, we need
  * contain the header plus one complete page of data.  Otherwise, we need
  * to leave cifs_readpages out of the address space operations.
  * to leave cifs_readpages out of the address space operations.
  */
  */
-struct address_space_operations cifs_addr_ops_smallbuf = {
+const struct address_space_operations cifs_addr_ops_smallbuf = {
 	.readpage = cifs_readpage,
 	.readpage = cifs_readpage,
 	.writepage = cifs_writepage,
 	.writepage = cifs_writepage,
 	.writepages = cifs_writepages,
 	.writepages = cifs_writepages,

+ 1 - 1
fs/coda/symlink.c

@@ -50,6 +50,6 @@ fail:
 	return error;
 	return error;
 }
 }
 
 
-struct address_space_operations coda_symlink_aops = {
+const struct address_space_operations coda_symlink_aops = {
 	.readpage	= coda_symlink_filler,
 	.readpage	= coda_symlink_filler,
 };
 };

+ 1 - 1
fs/configfs/inode.c

@@ -38,7 +38,7 @@
 
 
 extern struct super_block * configfs_sb;
 extern struct super_block * configfs_sb;
 
 
-static struct address_space_operations configfs_aops = {
+static const struct address_space_operations configfs_aops = {
 	.readpage	= simple_readpage,
 	.readpage	= simple_readpage,
 	.prepare_write	= simple_prepare_write,
 	.prepare_write	= simple_prepare_write,
 	.commit_write	= simple_commit_write
 	.commit_write	= simple_commit_write

+ 2 - 2
fs/cramfs/inode.c

@@ -30,7 +30,7 @@
 static struct super_operations cramfs_ops;
 static struct super_operations cramfs_ops;
 static struct inode_operations cramfs_dir_inode_operations;
 static struct inode_operations cramfs_dir_inode_operations;
 static const struct file_operations cramfs_directory_operations;
 static const struct file_operations cramfs_directory_operations;
-static struct address_space_operations cramfs_aops;
+static const struct address_space_operations cramfs_aops;
 
 
 static DEFINE_MUTEX(read_mutex);
 static DEFINE_MUTEX(read_mutex);
 
 
@@ -501,7 +501,7 @@ static int cramfs_readpage(struct file *file, struct page * page)
 	return 0;
 	return 0;
 }
 }
 
 
-static struct address_space_operations cramfs_aops = {
+static const struct address_space_operations cramfs_aops = {
 	.readpage = cramfs_readpage
 	.readpage = cramfs_readpage
 };
 };
 
 

+ 1 - 1
fs/efs/inode.c

@@ -21,7 +21,7 @@ static sector_t _efs_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,efs_get_block);
 	return generic_block_bmap(mapping,block,efs_get_block);
 }
 }
-static struct address_space_operations efs_aops = {
+static const struct address_space_operations efs_aops = {
 	.readpage = efs_readpage,
 	.readpage = efs_readpage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,
 	.bmap = _efs_bmap
 	.bmap = _efs_bmap

+ 1 - 1
fs/efs/symlink.c

@@ -53,6 +53,6 @@ fail:
 	return err;
 	return err;
 }
 }
 
 
-struct address_space_operations efs_symlink_aops = {
+const struct address_space_operations efs_symlink_aops = {
 	.readpage	= efs_symlink_readpage
 	.readpage	= efs_symlink_readpage
 };
 };

+ 3 - 3
fs/ext2/ext2.h

@@ -162,9 +162,9 @@ extern const struct file_operations ext2_file_operations;
 extern const struct file_operations ext2_xip_file_operations;
 extern const struct file_operations ext2_xip_file_operations;
 
 
 /* inode.c */
 /* inode.c */
-extern struct address_space_operations ext2_aops;
-extern struct address_space_operations ext2_aops_xip;
-extern struct address_space_operations ext2_nobh_aops;
+extern const struct address_space_operations ext2_aops;
+extern const struct address_space_operations ext2_aops_xip;
+extern const struct address_space_operations ext2_nobh_aops;
 
 
 /* namei.c */
 /* namei.c */
 extern struct inode_operations ext2_dir_inode_operations;
 extern struct inode_operations ext2_dir_inode_operations;

+ 3 - 3
fs/ext2/inode.c

@@ -684,7 +684,7 @@ ext2_writepages(struct address_space *mapping, struct writeback_control *wbc)
 	return mpage_writepages(mapping, wbc, ext2_get_block);
 	return mpage_writepages(mapping, wbc, ext2_get_block);
 }
 }
 
 
-struct address_space_operations ext2_aops = {
+const struct address_space_operations ext2_aops = {
 	.readpage		= ext2_readpage,
 	.readpage		= ext2_readpage,
 	.readpages		= ext2_readpages,
 	.readpages		= ext2_readpages,
 	.writepage		= ext2_writepage,
 	.writepage		= ext2_writepage,
@@ -697,12 +697,12 @@ struct address_space_operations ext2_aops = {
 	.migratepage		= buffer_migrate_page,
 	.migratepage		= buffer_migrate_page,
 };
 };
 
 
-struct address_space_operations ext2_aops_xip = {
+const struct address_space_operations ext2_aops_xip = {
 	.bmap			= ext2_bmap,
 	.bmap			= ext2_bmap,
 	.get_xip_page		= ext2_get_xip_page,
 	.get_xip_page		= ext2_get_xip_page,
 };
 };
 
 
-struct address_space_operations ext2_nobh_aops = {
+const struct address_space_operations ext2_nobh_aops = {
 	.readpage		= ext2_readpage,
 	.readpage		= ext2_readpage,
 	.readpages		= ext2_readpages,
 	.readpages		= ext2_readpages,
 	.writepage		= ext2_nobh_writepage,
 	.writepage		= ext2_nobh_writepage,

+ 3 - 3
fs/ext3/inode.c

@@ -1698,7 +1698,7 @@ static int ext3_journalled_set_page_dirty(struct page *page)
 	return __set_page_dirty_nobuffers(page);
 	return __set_page_dirty_nobuffers(page);
 }
 }
 
 
-static struct address_space_operations ext3_ordered_aops = {
+static const struct address_space_operations ext3_ordered_aops = {
 	.readpage	= ext3_readpage,
 	.readpage	= ext3_readpage,
 	.readpages	= ext3_readpages,
 	.readpages	= ext3_readpages,
 	.writepage	= ext3_ordered_writepage,
 	.writepage	= ext3_ordered_writepage,
@@ -1712,7 +1712,7 @@ static struct address_space_operations ext3_ordered_aops = {
 	.migratepage	= buffer_migrate_page,
 	.migratepage	= buffer_migrate_page,
 };
 };
 
 
-static struct address_space_operations ext3_writeback_aops = {
+static const struct address_space_operations ext3_writeback_aops = {
 	.readpage	= ext3_readpage,
 	.readpage	= ext3_readpage,
 	.readpages	= ext3_readpages,
 	.readpages	= ext3_readpages,
 	.writepage	= ext3_writeback_writepage,
 	.writepage	= ext3_writeback_writepage,
@@ -1726,7 +1726,7 @@ static struct address_space_operations ext3_writeback_aops = {
 	.migratepage	= buffer_migrate_page,
 	.migratepage	= buffer_migrate_page,
 };
 };
 
 
-static struct address_space_operations ext3_journalled_aops = {
+static const struct address_space_operations ext3_journalled_aops = {
 	.readpage	= ext3_readpage,
 	.readpage	= ext3_readpage,
 	.readpages	= ext3_readpages,
 	.readpages	= ext3_readpages,
 	.writepage	= ext3_journalled_writepage,
 	.writepage	= ext3_journalled_writepage,

+ 1 - 1
fs/fat/inode.c

@@ -196,7 +196,7 @@ static sector_t _fat_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping, block, fat_get_block);
 	return generic_block_bmap(mapping, block, fat_get_block);
 }
 }
 
 
-static struct address_space_operations fat_aops = {
+static const struct address_space_operations fat_aops = {
 	.readpage	= fat_readpage,
 	.readpage	= fat_readpage,
 	.readpages	= fat_readpages,
 	.readpages	= fat_readpages,
 	.writepage	= fat_writepage,
 	.writepage	= fat_writepage,

+ 1 - 1
fs/freevxfs/vxfs_immed.c

@@ -56,7 +56,7 @@ struct inode_operations vxfs_immed_symlink_iops = {
 /*
 /*
  * Adress space operations for immed files and directories.
  * Adress space operations for immed files and directories.
  */
  */
-struct address_space_operations vxfs_immed_aops = {
+const struct address_space_operations vxfs_immed_aops = {
 	.readpage =		vxfs_immed_readpage,
 	.readpage =		vxfs_immed_readpage,
 };
 };
 
 

+ 3 - 3
fs/freevxfs/vxfs_inode.c

@@ -41,8 +41,8 @@
 #include "vxfs_extern.h"
 #include "vxfs_extern.h"
 
 
 
 
-extern struct address_space_operations vxfs_aops;
-extern struct address_space_operations vxfs_immed_aops;
+extern const struct address_space_operations vxfs_aops;
+extern const struct address_space_operations vxfs_immed_aops;
 
 
 extern struct inode_operations vxfs_immed_symlink_iops;
 extern struct inode_operations vxfs_immed_symlink_iops;
 
 
@@ -295,7 +295,7 @@ vxfs_read_inode(struct inode *ip)
 {
 {
 	struct super_block		*sbp = ip->i_sb;
 	struct super_block		*sbp = ip->i_sb;
 	struct vxfs_inode_info		*vip;
 	struct vxfs_inode_info		*vip;
-	struct address_space_operations	*aops;
+	const struct address_space_operations	*aops;
 	ino_t				ino = ip->i_ino;
 	ino_t				ino = ip->i_ino;
 
 
 	if (!(vip = __vxfs_iget(ino, VXFS_SBI(sbp)->vsi_ilist)))
 	if (!(vip = __vxfs_iget(ino, VXFS_SBI(sbp)->vsi_ilist)))

+ 1 - 1
fs/freevxfs/vxfs_subr.c

@@ -42,7 +42,7 @@
 static int		vxfs_readpage(struct file *, struct page *);
 static int		vxfs_readpage(struct file *, struct page *);
 static sector_t		vxfs_bmap(struct address_space *, sector_t);
 static sector_t		vxfs_bmap(struct address_space *, sector_t);
 
 
-struct address_space_operations vxfs_aops = {
+const struct address_space_operations vxfs_aops = {
 	.readpage =		vxfs_readpage,
 	.readpage =		vxfs_readpage,
 	.bmap =			vxfs_bmap,
 	.bmap =			vxfs_bmap,
 	.sync_page =		block_sync_page,
 	.sync_page =		block_sync_page,

+ 1 - 1
fs/fuse/file.c

@@ -770,7 +770,7 @@ static const struct file_operations fuse_direct_io_file_operations = {
 	/* no mmap and sendfile */
 	/* no mmap and sendfile */
 };
 };
 
 
-static struct address_space_operations fuse_file_aops  = {
+static const struct address_space_operations fuse_file_aops  = {
 	.readpage	= fuse_readpage,
 	.readpage	= fuse_readpage,
 	.prepare_write	= fuse_prepare_write,
 	.prepare_write	= fuse_prepare_write,
 	.commit_write	= fuse_commit_write,
 	.commit_write	= fuse_commit_write,

+ 2 - 2
fs/hfs/hfs_fs.h

@@ -182,8 +182,8 @@ extern void hfs_file_truncate(struct inode *);
 extern int hfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
 extern int hfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
 
 
 /* inode.c */
 /* inode.c */
-extern struct address_space_operations hfs_aops;
-extern struct address_space_operations hfs_btree_aops;
+extern const struct address_space_operations hfs_aops;
+extern const struct address_space_operations hfs_btree_aops;
 
 
 extern struct inode *hfs_new_inode(struct inode *, struct qstr *, int);
 extern struct inode *hfs_new_inode(struct inode *, struct qstr *, int);
 extern void hfs_inode_write_fork(struct inode *, struct hfs_extent *, __be32 *, __be32 *);
 extern void hfs_inode_write_fork(struct inode *, struct hfs_extent *, __be32 *, __be32 *);

+ 2 - 2
fs/hfs/inode.c

@@ -114,7 +114,7 @@ static int hfs_writepages(struct address_space *mapping,
 	return mpage_writepages(mapping, wbc, hfs_get_block);
 	return mpage_writepages(mapping, wbc, hfs_get_block);
 }
 }
 
 
-struct address_space_operations hfs_btree_aops = {
+const struct address_space_operations hfs_btree_aops = {
 	.readpage	= hfs_readpage,
 	.readpage	= hfs_readpage,
 	.writepage	= hfs_writepage,
 	.writepage	= hfs_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,
@@ -124,7 +124,7 @@ struct address_space_operations hfs_btree_aops = {
 	.releasepage	= hfs_releasepage,
 	.releasepage	= hfs_releasepage,
 };
 };
 
 
-struct address_space_operations hfs_aops = {
+const struct address_space_operations hfs_aops = {
 	.readpage	= hfs_readpage,
 	.readpage	= hfs_readpage,
 	.writepage	= hfs_writepage,
 	.writepage	= hfs_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 2 - 2
fs/hfsplus/hfsplus_fs.h

@@ -323,8 +323,8 @@ int hfsplus_file_extend(struct inode *);
 void hfsplus_file_truncate(struct inode *);
 void hfsplus_file_truncate(struct inode *);
 
 
 /* inode.c */
 /* inode.c */
-extern struct address_space_operations hfsplus_aops;
-extern struct address_space_operations hfsplus_btree_aops;
+extern const struct address_space_operations hfsplus_aops;
+extern const struct address_space_operations hfsplus_btree_aops;
 
 
 void hfsplus_inode_read_fork(struct inode *, struct hfsplus_fork_raw *);
 void hfsplus_inode_read_fork(struct inode *, struct hfsplus_fork_raw *);
 void hfsplus_inode_write_fork(struct inode *, struct hfsplus_fork_raw *);
 void hfsplus_inode_write_fork(struct inode *, struct hfsplus_fork_raw *);

+ 2 - 2
fs/hfsplus/inode.c

@@ -109,7 +109,7 @@ static int hfsplus_writepages(struct address_space *mapping,
 	return mpage_writepages(mapping, wbc, hfsplus_get_block);
 	return mpage_writepages(mapping, wbc, hfsplus_get_block);
 }
 }
 
 
-struct address_space_operations hfsplus_btree_aops = {
+const struct address_space_operations hfsplus_btree_aops = {
 	.readpage	= hfsplus_readpage,
 	.readpage	= hfsplus_readpage,
 	.writepage	= hfsplus_writepage,
 	.writepage	= hfsplus_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,
@@ -119,7 +119,7 @@ struct address_space_operations hfsplus_btree_aops = {
 	.releasepage	= hfsplus_releasepage,
 	.releasepage	= hfsplus_releasepage,
 };
 };
 
 
-struct address_space_operations hfsplus_aops = {
+const struct address_space_operations hfsplus_aops = {
 	.readpage	= hfsplus_readpage,
 	.readpage	= hfsplus_readpage,
 	.writepage	= hfsplus_writepage,
 	.writepage	= hfsplus_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 3 - 3
fs/hostfs/hostfs_kern.c

@@ -54,7 +54,7 @@ static int append = 0;
 
 
 static struct inode_operations hostfs_iops;
 static struct inode_operations hostfs_iops;
 static struct inode_operations hostfs_dir_iops;
 static struct inode_operations hostfs_dir_iops;
-static struct address_space_operations hostfs_link_aops;
+static const struct address_space_operations hostfs_link_aops;
 
 
 #ifndef MODULE
 #ifndef MODULE
 static int __init hostfs_args(char *options, int *add)
 static int __init hostfs_args(char *options, int *add)
@@ -518,7 +518,7 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
 	return(err);
 	return(err);
 }
 }
 
 
-static struct address_space_operations hostfs_aops = {
+static const struct address_space_operations hostfs_aops = {
 	.writepage 	= hostfs_writepage,
 	.writepage 	= hostfs_writepage,
 	.readpage	= hostfs_readpage,
 	.readpage	= hostfs_readpage,
 	.set_page_dirty = __set_page_dirty_nobuffers,
 	.set_page_dirty = __set_page_dirty_nobuffers,
@@ -935,7 +935,7 @@ int hostfs_link_readpage(struct file *file, struct page *page)
 	return(err);
 	return(err);
 }
 }
 
 
-static struct address_space_operations hostfs_link_aops = {
+static const struct address_space_operations hostfs_link_aops = {
 	.readpage	= hostfs_link_readpage,
 	.readpage	= hostfs_link_readpage,
 };
 };
 
 

+ 1 - 1
fs/hpfs/file.c

@@ -99,7 +99,7 @@ static sector_t _hpfs_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,hpfs_get_block);
 	return generic_block_bmap(mapping,block,hpfs_get_block);
 }
 }
-struct address_space_operations hpfs_aops = {
+const struct address_space_operations hpfs_aops = {
 	.readpage = hpfs_readpage,
 	.readpage = hpfs_readpage,
 	.writepage = hpfs_writepage,
 	.writepage = hpfs_writepage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,

+ 2 - 2
fs/hpfs/hpfs_fn.h

@@ -268,7 +268,7 @@ void hpfs_set_ea(struct inode *, struct fnode *, char *, char *, int);
 int hpfs_file_fsync(struct file *, struct dentry *, int);
 int hpfs_file_fsync(struct file *, struct dentry *, int);
 extern const struct file_operations hpfs_file_ops;
 extern const struct file_operations hpfs_file_ops;
 extern struct inode_operations hpfs_file_iops;
 extern struct inode_operations hpfs_file_iops;
-extern struct address_space_operations hpfs_aops;
+extern const struct address_space_operations hpfs_aops;
 
 
 /* inode.c */
 /* inode.c */
 
 
@@ -304,7 +304,7 @@ void hpfs_decide_conv(struct inode *, unsigned char *, unsigned);
 /* namei.c */
 /* namei.c */
 
 
 extern struct inode_operations hpfs_dir_iops;
 extern struct inode_operations hpfs_dir_iops;
-extern struct address_space_operations hpfs_symlink_aops;
+extern const struct address_space_operations hpfs_symlink_aops;
 
 
 static inline struct hpfs_inode_info *hpfs_i(struct inode *inode)
 static inline struct hpfs_inode_info *hpfs_i(struct inode *inode)
 {
 {

+ 1 - 1
fs/hpfs/namei.c

@@ -538,7 +538,7 @@ fail:
 	return err;
 	return err;
 }
 }
 
 
-struct address_space_operations hpfs_symlink_aops = {
+const struct address_space_operations hpfs_symlink_aops = {
 	.readpage	= hpfs_symlink_readpage
 	.readpage	= hpfs_symlink_readpage
 };
 };
 	
 	

+ 2 - 2
fs/hugetlbfs/inode.c

@@ -34,7 +34,7 @@
 #define HUGETLBFS_MAGIC	0x958458f6
 #define HUGETLBFS_MAGIC	0x958458f6
 
 
 static struct super_operations hugetlbfs_ops;
 static struct super_operations hugetlbfs_ops;
-static struct address_space_operations hugetlbfs_aops;
+static const struct address_space_operations hugetlbfs_aops;
 const struct file_operations hugetlbfs_file_operations;
 const struct file_operations hugetlbfs_file_operations;
 static struct inode_operations hugetlbfs_dir_inode_operations;
 static struct inode_operations hugetlbfs_dir_inode_operations;
 static struct inode_operations hugetlbfs_inode_operations;
 static struct inode_operations hugetlbfs_inode_operations;
@@ -547,7 +547,7 @@ static void hugetlbfs_destroy_inode(struct inode *inode)
 	kmem_cache_free(hugetlbfs_inode_cachep, HUGETLBFS_I(inode));
 	kmem_cache_free(hugetlbfs_inode_cachep, HUGETLBFS_I(inode));
 }
 }
 
 
-static struct address_space_operations hugetlbfs_aops = {
+static const struct address_space_operations hugetlbfs_aops = {
 	.readpage	= hugetlbfs_readpage,
 	.readpage	= hugetlbfs_readpage,
 	.prepare_write	= hugetlbfs_prepare_write,
 	.prepare_write	= hugetlbfs_prepare_write,
 	.commit_write	= hugetlbfs_commit_write,
 	.commit_write	= hugetlbfs_commit_write,

+ 1 - 1
fs/inode.c

@@ -102,7 +102,7 @@ static kmem_cache_t * inode_cachep __read_mostly;
 
 
 static struct inode *alloc_inode(struct super_block *sb)
 static struct inode *alloc_inode(struct super_block *sb)
 {
 {
-	static struct address_space_operations empty_aops;
+	static const struct address_space_operations empty_aops;
 	static struct inode_operations empty_iops;
 	static struct inode_operations empty_iops;
 	static const struct file_operations empty_fops;
 	static const struct file_operations empty_fops;
 	struct inode *inode;
 	struct inode *inode;

+ 1 - 1
fs/isofs/compress.c

@@ -312,7 +312,7 @@ eio:
 	return err;
 	return err;
 }
 }
 
 
-struct address_space_operations zisofs_aops = {
+const struct address_space_operations zisofs_aops = {
 	.readpage = zisofs_readpage,
 	.readpage = zisofs_readpage,
 	/* No sync_page operation supported? */
 	/* No sync_page operation supported? */
 	/* No bmap operation supported */
 	/* No bmap operation supported */

+ 1 - 1
fs/isofs/inode.c

@@ -1054,7 +1054,7 @@ static sector_t _isofs_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping,block,isofs_get_block);
 	return generic_block_bmap(mapping,block,isofs_get_block);
 }
 }
 
 
-static struct address_space_operations isofs_aops = {
+static const struct address_space_operations isofs_aops = {
 	.readpage = isofs_readpage,
 	.readpage = isofs_readpage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,
 	.bmap = _isofs_bmap
 	.bmap = _isofs_bmap

+ 1 - 1
fs/isofs/isofs.h

@@ -176,5 +176,5 @@ isofs_normalize_block_and_offset(struct iso_directory_record* de,
 
 
 extern struct inode_operations isofs_dir_inode_operations;
 extern struct inode_operations isofs_dir_inode_operations;
 extern const struct file_operations isofs_dir_operations;
 extern const struct file_operations isofs_dir_operations;
-extern struct address_space_operations isofs_symlink_aops;
+extern const struct address_space_operations isofs_symlink_aops;
 extern struct export_operations isofs_export_ops;
 extern struct export_operations isofs_export_ops;

+ 1 - 1
fs/isofs/rock.c

@@ -754,6 +754,6 @@ error:
 	return -EIO;
 	return -EIO;
 }
 }
 
 
-struct address_space_operations isofs_symlink_aops = {
+const struct address_space_operations isofs_symlink_aops = {
 	.readpage = rock_ridge_symlink_readpage
 	.readpage = rock_ridge_symlink_readpage
 };
 };

+ 1 - 1
fs/isofs/zisofs.h

@@ -15,7 +15,7 @@
  */
  */
 
 
 #ifdef CONFIG_ZISOFS
 #ifdef CONFIG_ZISOFS
-extern struct address_space_operations zisofs_aops;
+extern const struct address_space_operations zisofs_aops;
 extern int __init zisofs_init(void);
 extern int __init zisofs_init(void);
 extern void zisofs_cleanup(void);
 extern void zisofs_cleanup(void);
 #endif
 #endif

+ 2 - 2
fs/jffs/inode-v23.c

@@ -59,7 +59,7 @@ static const struct file_operations jffs_file_operations;
 static struct inode_operations jffs_file_inode_operations;
 static struct inode_operations jffs_file_inode_operations;
 static const struct file_operations jffs_dir_operations;
 static const struct file_operations jffs_dir_operations;
 static struct inode_operations jffs_dir_inode_operations;
 static struct inode_operations jffs_dir_inode_operations;
-static struct address_space_operations jffs_address_operations;
+static const struct address_space_operations jffs_address_operations;
 
 
 kmem_cache_t     *node_cache = NULL;
 kmem_cache_t     *node_cache = NULL;
 kmem_cache_t     *fm_cache = NULL;
 kmem_cache_t     *fm_cache = NULL;
@@ -1614,7 +1614,7 @@ jffs_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
 } /* jffs_ioctl()  */
 } /* jffs_ioctl()  */
 
 
 
 
-static struct address_space_operations jffs_address_operations = {
+static const struct address_space_operations jffs_address_operations = {
 	.readpage	= jffs_readpage,
 	.readpage	= jffs_readpage,
 	.prepare_write	= jffs_prepare_write,
 	.prepare_write	= jffs_prepare_write,
 	.commit_write	= jffs_commit_write,
 	.commit_write	= jffs_commit_write,

+ 1 - 1
fs/jffs2/file.c

@@ -62,7 +62,7 @@ struct inode_operations jffs2_file_inode_operations =
 	.removexattr =	jffs2_removexattr
 	.removexattr =	jffs2_removexattr
 };
 };
 
 
-struct address_space_operations jffs2_file_address_operations =
+const struct address_space_operations jffs2_file_address_operations =
 {
 {
 	.readpage =	jffs2_readpage,
 	.readpage =	jffs2_readpage,
 	.prepare_write =jffs2_prepare_write,
 	.prepare_write =jffs2_prepare_write,

+ 1 - 1
fs/jffs2/os-linux.h

@@ -158,7 +158,7 @@ extern struct inode_operations jffs2_dir_inode_operations;
 /* file.c */
 /* file.c */
 extern const struct file_operations jffs2_file_operations;
 extern const struct file_operations jffs2_file_operations;
 extern struct inode_operations jffs2_file_inode_operations;
 extern struct inode_operations jffs2_file_inode_operations;
-extern struct address_space_operations jffs2_file_address_operations;
+extern const struct address_space_operations jffs2_file_address_operations;
 int jffs2_fsync(struct file *, struct dentry *, int);
 int jffs2_fsync(struct file *, struct dentry *, int);
 int jffs2_do_readpage_unlock (struct inode *inode, struct page *pg);
 int jffs2_do_readpage_unlock (struct inode *inode, struct page *pg);
 
 

+ 1 - 1
fs/jfs/inode.c

@@ -305,7 +305,7 @@ static ssize_t jfs_direct_IO(int rw, struct kiocb *iocb,
 				offset, nr_segs, jfs_get_block, NULL);
 				offset, nr_segs, jfs_get_block, NULL);
 }
 }
 
 
-struct address_space_operations jfs_aops = {
+const struct address_space_operations jfs_aops = {
 	.readpage	= jfs_readpage,
 	.readpage	= jfs_readpage,
 	.readpages	= jfs_readpages,
 	.readpages	= jfs_readpages,
 	.writepage	= jfs_writepage,
 	.writepage	= jfs_writepage,

+ 1 - 1
fs/jfs/jfs_inode.h

@@ -33,7 +33,7 @@ extern void jfs_free_zero_link(struct inode *);
 extern struct dentry *jfs_get_parent(struct dentry *dentry);
 extern struct dentry *jfs_get_parent(struct dentry *dentry);
 extern void jfs_set_inode_flags(struct inode *);
 extern void jfs_set_inode_flags(struct inode *);
 
 
-extern struct address_space_operations jfs_aops;
+extern const struct address_space_operations jfs_aops;
 extern struct inode_operations jfs_dir_inode_operations;
 extern struct inode_operations jfs_dir_inode_operations;
 extern const struct file_operations jfs_dir_operations;
 extern const struct file_operations jfs_dir_operations;
 extern struct inode_operations jfs_file_inode_operations;
 extern struct inode_operations jfs_file_inode_operations;

+ 1 - 1
fs/jfs/jfs_metapage.c

@@ -577,7 +577,7 @@ static void metapage_invalidatepage(struct page *page, unsigned long offset)
 	metapage_releasepage(page, 0);
 	metapage_releasepage(page, 0);
 }
 }
 
 
-struct address_space_operations jfs_metapage_aops = {
+const struct address_space_operations jfs_metapage_aops = {
 	.readpage	= metapage_readpage,
 	.readpage	= metapage_readpage,
 	.writepage	= metapage_writepage,
 	.writepage	= metapage_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 1 - 1
fs/jfs/jfs_metapage.h

@@ -139,7 +139,7 @@ static inline void metapage_homeok(struct metapage *mp)
 	put_metapage(mp);
 	put_metapage(mp);
 }
 }
 
 
-extern struct address_space_operations jfs_metapage_aops;
+extern const struct address_space_operations jfs_metapage_aops;
 
 
 /*
 /*
  * This routines invalidate all pages for an extent.
  * This routines invalidate all pages for an extent.

+ 1 - 1
fs/minix/inode.c

@@ -335,7 +335,7 @@ static sector_t minix_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,minix_get_block);
 	return generic_block_bmap(mapping,block,minix_get_block);
 }
 }
-static struct address_space_operations minix_aops = {
+static const struct address_space_operations minix_aops = {
 	.readpage = minix_readpage,
 	.readpage = minix_readpage,
 	.writepage = minix_writepage,
 	.writepage = minix_writepage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,

+ 1 - 1
fs/ncpfs/inode.c

@@ -105,7 +105,7 @@ static struct super_operations ncp_sops =
 
 
 extern struct dentry_operations ncp_root_dentry_operations;
 extern struct dentry_operations ncp_root_dentry_operations;
 #if defined(CONFIG_NCPFS_EXTRAS) || defined(CONFIG_NCPFS_NFS_NS)
 #if defined(CONFIG_NCPFS_EXTRAS) || defined(CONFIG_NCPFS_NFS_NS)
-extern struct address_space_operations ncp_symlink_aops;
+extern const struct address_space_operations ncp_symlink_aops;
 extern int ncp_symlink(struct inode*, struct dentry*, const char*);
 extern int ncp_symlink(struct inode*, struct dentry*, const char*);
 #endif
 #endif
 
 

+ 1 - 1
fs/ncpfs/symlink.c

@@ -99,7 +99,7 @@ fail:
 /*
 /*
  * symlinks can't do much...
  * symlinks can't do much...
  */
  */
-struct address_space_operations ncp_symlink_aops = {
+const struct address_space_operations ncp_symlink_aops = {
 	.readpage	= ncp_symlink_readpage,
 	.readpage	= ncp_symlink_readpage,
 };
 };
 	
 	

+ 1 - 1
fs/nfs/file.c

@@ -315,7 +315,7 @@ static int nfs_release_page(struct page *page, gfp_t gfp)
 	return !nfs_wb_page(page->mapping->host, page);
 	return !nfs_wb_page(page->mapping->host, page);
 }
 }
 
 
-struct address_space_operations nfs_file_aops = {
+const struct address_space_operations nfs_file_aops = {
 	.readpage = nfs_readpage,
 	.readpage = nfs_readpage,
 	.readpages = nfs_readpages,
 	.readpages = nfs_readpages,
 	.set_page_dirty = __set_page_dirty_nobuffers,
 	.set_page_dirty = __set_page_dirty_nobuffers,

+ 2 - 2
fs/ntfs/aops.c

@@ -1544,7 +1544,7 @@ err_out:
 /**
 /**
  * ntfs_aops - general address space operations for inodes and attributes
  * ntfs_aops - general address space operations for inodes and attributes
  */
  */
-struct address_space_operations ntfs_aops = {
+const struct address_space_operations ntfs_aops = {
 	.readpage	= ntfs_readpage,	/* Fill page with data. */
 	.readpage	= ntfs_readpage,	/* Fill page with data. */
 	.sync_page	= block_sync_page,	/* Currently, just unplugs the
 	.sync_page	= block_sync_page,	/* Currently, just unplugs the
 						   disk request queue. */
 						   disk request queue. */
@@ -1560,7 +1560,7 @@ struct address_space_operations ntfs_aops = {
  * ntfs_mst_aops - general address space operations for mst protecteed inodes
  * ntfs_mst_aops - general address space operations for mst protecteed inodes
  *		   and attributes
  *		   and attributes
  */
  */
-struct address_space_operations ntfs_mst_aops = {
+const struct address_space_operations ntfs_mst_aops = {
 	.readpage	= ntfs_readpage,	/* Fill page with data. */
 	.readpage	= ntfs_readpage,	/* Fill page with data. */
 	.sync_page	= block_sync_page,	/* Currently, just unplugs the
 	.sync_page	= block_sync_page,	/* Currently, just unplugs the
 						   disk request queue. */
 						   disk request queue. */

+ 2 - 2
fs/ntfs/ntfs.h

@@ -57,8 +57,8 @@ extern struct kmem_cache *ntfs_attr_ctx_cache;
 extern struct kmem_cache *ntfs_index_ctx_cache;
 extern struct kmem_cache *ntfs_index_ctx_cache;
 
 
 /* The various operations structs defined throughout the driver files. */
 /* The various operations structs defined throughout the driver files. */
-extern struct address_space_operations ntfs_aops;
-extern struct address_space_operations ntfs_mst_aops;
+extern const struct address_space_operations ntfs_aops;
+extern const struct address_space_operations ntfs_mst_aops;
 
 
 extern const struct  file_operations ntfs_file_ops;
 extern const struct  file_operations ntfs_file_ops;
 extern struct inode_operations ntfs_file_inode_ops;
 extern struct inode_operations ntfs_file_inode_ops;

+ 1 - 1
fs/ocfs2/aops.c

@@ -666,7 +666,7 @@ out:
 	return ret;
 	return ret;
 }
 }
 
 
-struct address_space_operations ocfs2_aops = {
+const struct address_space_operations ocfs2_aops = {
 	.readpage	= ocfs2_readpage,
 	.readpage	= ocfs2_readpage,
 	.writepage	= ocfs2_writepage,
 	.writepage	= ocfs2_writepage,
 	.prepare_write	= ocfs2_prepare_write,
 	.prepare_write	= ocfs2_prepare_write,

+ 1 - 1
fs/ocfs2/inode.h

@@ -114,7 +114,7 @@ static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode)
 
 
 extern kmem_cache_t *ocfs2_inode_cache;
 extern kmem_cache_t *ocfs2_inode_cache;
 
 
-extern struct address_space_operations ocfs2_aops;
+extern const struct address_space_operations ocfs2_aops;
 
 
 struct buffer_head *ocfs2_bread(struct inode *inode, int block,
 struct buffer_head *ocfs2_bread(struct inode *inode, int block,
 				int *err, int reada);
 				int *err, int reada);

+ 1 - 1
fs/qnx4/inode.c

@@ -450,7 +450,7 @@ static sector_t qnx4_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,qnx4_get_block);
 	return generic_block_bmap(mapping,block,qnx4_get_block);
 }
 }
-static struct address_space_operations qnx4_aops = {
+static const struct address_space_operations qnx4_aops = {
 	.readpage	= qnx4_readpage,
 	.readpage	= qnx4_readpage,
 	.writepage	= qnx4_writepage,
 	.writepage	= qnx4_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,

+ 1 - 1
fs/ramfs/file-mmu.c

@@ -26,7 +26,7 @@
 
 
 #include <linux/fs.h>
 #include <linux/fs.h>
 
 
-struct address_space_operations ramfs_aops = {
+const struct address_space_operations ramfs_aops = {
 	.readpage	= simple_readpage,
 	.readpage	= simple_readpage,
 	.prepare_write	= simple_prepare_write,
 	.prepare_write	= simple_prepare_write,
 	.commit_write	= simple_commit_write
 	.commit_write	= simple_commit_write

+ 1 - 1
fs/ramfs/file-nommu.c

@@ -27,7 +27,7 @@
 
 
 static int ramfs_nommu_setattr(struct dentry *, struct iattr *);
 static int ramfs_nommu_setattr(struct dentry *, struct iattr *);
 
 
-struct address_space_operations ramfs_aops = {
+const struct address_space_operations ramfs_aops = {
 	.readpage		= simple_readpage,
 	.readpage		= simple_readpage,
 	.prepare_write		= simple_prepare_write,
 	.prepare_write		= simple_prepare_write,
 	.commit_write		= simple_commit_write
 	.commit_write		= simple_commit_write

+ 1 - 1
fs/ramfs/internal.h

@@ -10,6 +10,6 @@
  */
  */
 
 
 
 
-extern struct address_space_operations ramfs_aops;
+extern const struct address_space_operations ramfs_aops;
 extern const struct file_operations ramfs_file_operations;
 extern const struct file_operations ramfs_file_operations;
 extern struct inode_operations ramfs_file_inode_operations;
 extern struct inode_operations ramfs_file_inode_operations;

+ 1 - 1
fs/reiserfs/inode.c

@@ -2996,7 +2996,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
 	return error;
 	return error;
 }
 }
 
 
-struct address_space_operations reiserfs_address_space_operations = {
+const struct address_space_operations reiserfs_address_space_operations = {
 	.writepage = reiserfs_writepage,
 	.writepage = reiserfs_writepage,
 	.readpage = reiserfs_readpage,
 	.readpage = reiserfs_readpage,
 	.readpages = reiserfs_readpages,
 	.readpages = reiserfs_readpages,

+ 1 - 1
fs/romfs/inode.c

@@ -459,7 +459,7 @@ err_out:
 
 
 /* Mapping from our types to the kernel */
 /* Mapping from our types to the kernel */
 
 
-static struct address_space_operations romfs_aops = {
+static const struct address_space_operations romfs_aops = {
 	.readpage = romfs_readpage
 	.readpage = romfs_readpage
 };
 };
 
 

+ 1 - 1
fs/smbfs/file.c

@@ -306,7 +306,7 @@ static int smb_commit_write(struct file *file, struct page *page,
 	return status;
 	return status;
 }
 }
 
 
-struct address_space_operations smb_file_aops = {
+const struct address_space_operations smb_file_aops = {
 	.readpage = smb_readpage,
 	.readpage = smb_readpage,
 	.writepage = smb_writepage,
 	.writepage = smb_writepage,
 	.prepare_write = smb_prepare_write,
 	.prepare_write = smb_prepare_write,

+ 1 - 1
fs/smbfs/proto.h

@@ -63,7 +63,7 @@ extern int smb_revalidate_inode(struct dentry *dentry);
 extern int smb_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat);
 extern int smb_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat);
 extern int smb_notify_change(struct dentry *dentry, struct iattr *attr);
 extern int smb_notify_change(struct dentry *dentry, struct iattr *attr);
 /* file.c */
 /* file.c */
-extern struct address_space_operations smb_file_aops;
+extern const struct address_space_operations smb_file_aops;
 extern const struct file_operations smb_file_operations;
 extern const struct file_operations smb_file_operations;
 extern struct inode_operations smb_file_inode_operations;
 extern struct inode_operations smb_file_inode_operations;
 /* ioctl.c */
 /* ioctl.c */

+ 1 - 1
fs/sysfs/inode.c

@@ -16,7 +16,7 @@
 
 
 extern struct super_block * sysfs_sb;
 extern struct super_block * sysfs_sb;
 
 
-static struct address_space_operations sysfs_aops = {
+static const struct address_space_operations sysfs_aops = {
 	.readpage	= simple_readpage,
 	.readpage	= simple_readpage,
 	.prepare_write	= simple_prepare_write,
 	.prepare_write	= simple_prepare_write,
 	.commit_write	= simple_commit_write
 	.commit_write	= simple_commit_write

+ 1 - 1
fs/sysv/itree.c

@@ -465,7 +465,7 @@ static sector_t sysv_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,get_block);
 	return generic_block_bmap(mapping,block,get_block);
 }
 }
-struct address_space_operations sysv_aops = {
+const struct address_space_operations sysv_aops = {
 	.readpage = sysv_readpage,
 	.readpage = sysv_readpage,
 	.writepage = sysv_writepage,
 	.writepage = sysv_writepage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,

+ 1 - 1
fs/sysv/sysv.h

@@ -161,7 +161,7 @@ extern struct inode_operations sysv_dir_inode_operations;
 extern struct inode_operations sysv_fast_symlink_inode_operations;
 extern struct inode_operations sysv_fast_symlink_inode_operations;
 extern const struct file_operations sysv_file_operations;
 extern const struct file_operations sysv_file_operations;
 extern const struct file_operations sysv_dir_operations;
 extern const struct file_operations sysv_dir_operations;
-extern struct address_space_operations sysv_aops;
+extern const struct address_space_operations sysv_aops;
 extern struct super_operations sysv_sops;
 extern struct super_operations sysv_sops;
 extern struct dentry_operations sysv_dentry_operations;
 extern struct dentry_operations sysv_dentry_operations;
 
 

+ 1 - 1
fs/udf/file.c

@@ -95,7 +95,7 @@ static int udf_adinicb_commit_write(struct file *file, struct page *page, unsign
 	return 0;
 	return 0;
 }
 }
 
 
-struct address_space_operations udf_adinicb_aops = {
+const struct address_space_operations udf_adinicb_aops = {
 	.readpage		= udf_adinicb_readpage,
 	.readpage		= udf_adinicb_readpage,
 	.writepage		= udf_adinicb_writepage,
 	.writepage		= udf_adinicb_writepage,
 	.sync_page		= block_sync_page,
 	.sync_page		= block_sync_page,

+ 1 - 1
fs/udf/inode.c

@@ -132,7 +132,7 @@ static sector_t udf_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping,block,udf_get_block);
 	return generic_block_bmap(mapping,block,udf_get_block);
 }
 }
 
 
-struct address_space_operations udf_aops = {
+const struct address_space_operations udf_aops = {
 	.readpage		= udf_readpage,
 	.readpage		= udf_readpage,
 	.writepage		= udf_writepage,
 	.writepage		= udf_writepage,
 	.sync_page		= block_sync_page,
 	.sync_page		= block_sync_page,

+ 1 - 1
fs/udf/symlink.c

@@ -113,6 +113,6 @@ out:
 /*
 /*
  * symlinks can't do much...
  * symlinks can't do much...
  */
  */
-struct address_space_operations udf_symlink_aops = {
+const struct address_space_operations udf_symlink_aops = {
 	.readpage		= udf_symlink_filler,
 	.readpage		= udf_symlink_filler,
 };
 };

+ 3 - 3
fs/udf/udfdecl.h

@@ -47,9 +47,9 @@ extern struct inode_operations udf_dir_inode_operations;
 extern const struct file_operations udf_dir_operations;
 extern const struct file_operations udf_dir_operations;
 extern struct inode_operations udf_file_inode_operations;
 extern struct inode_operations udf_file_inode_operations;
 extern const struct file_operations udf_file_operations;
 extern const struct file_operations udf_file_operations;
-extern struct address_space_operations udf_aops;
-extern struct address_space_operations udf_adinicb_aops;
-extern struct address_space_operations udf_symlink_aops;
+extern const struct address_space_operations udf_aops;
+extern const struct address_space_operations udf_adinicb_aops;
+extern const struct address_space_operations udf_symlink_aops;
 
 
 struct udf_fileident_bh
 struct udf_fileident_bh
 {
 {

+ 1 - 1
fs/ufs/inode.c

@@ -574,7 +574,7 @@ static sector_t ufs_bmap(struct address_space *mapping, sector_t block)
 {
 {
 	return generic_block_bmap(mapping,block,ufs_getfrag_block);
 	return generic_block_bmap(mapping,block,ufs_getfrag_block);
 }
 }
-struct address_space_operations ufs_aops = {
+const struct address_space_operations ufs_aops = {
 	.readpage = ufs_readpage,
 	.readpage = ufs_readpage,
 	.writepage = ufs_writepage,
 	.writepage = ufs_writepage,
 	.sync_page = block_sync_page,
 	.sync_page = block_sync_page,

+ 1 - 1
fs/xfs/linux-2.6/xfs_aops.c

@@ -1454,7 +1454,7 @@ xfs_vm_invalidatepage(
 	block_invalidatepage(page, offset);
 	block_invalidatepage(page, offset);
 }
 }
 
 
-struct address_space_operations xfs_address_space_operations = {
+const struct address_space_operations xfs_address_space_operations = {
 	.readpage		= xfs_vm_readpage,
 	.readpage		= xfs_vm_readpage,
 	.readpages		= xfs_vm_readpages,
 	.readpages		= xfs_vm_readpages,
 	.writepage		= xfs_vm_writepage,
 	.writepage		= xfs_vm_writepage,

+ 1 - 1
fs/xfs/linux-2.6/xfs_aops.h

@@ -40,7 +40,7 @@ typedef struct xfs_ioend {
 	struct work_struct	io_work;	/* xfsdatad work queue */
 	struct work_struct	io_work;	/* xfsdatad work queue */
 } xfs_ioend_t;
 } xfs_ioend_t;
 
 
-extern struct address_space_operations xfs_address_space_operations;
+extern const struct address_space_operations xfs_address_space_operations;
 extern int xfs_get_blocks(struct inode *, sector_t, struct buffer_head *, int);
 extern int xfs_get_blocks(struct inode *, sector_t, struct buffer_head *, int);
 
 
 #endif /* __XFS_AOPS_H__ */
 #endif /* __XFS_AOPS_H__ */

+ 1 - 1
fs/xfs/linux-2.6/xfs_buf.c

@@ -1520,7 +1520,7 @@ xfs_mapping_buftarg(
 	struct backing_dev_info	*bdi;
 	struct backing_dev_info	*bdi;
 	struct inode		*inode;
 	struct inode		*inode;
 	struct address_space	*mapping;
 	struct address_space	*mapping;
-	static struct address_space_operations mapping_aops = {
+	static const struct address_space_operations mapping_aops = {
 		.sync_page = block_sync_page,
 		.sync_page = block_sync_page,
 		.migratepage = fail_migrate_page,
 		.migratepage = fail_migrate_page,
 	};
 	};

+ 2 - 2
include/linux/coda_linux.h

@@ -27,8 +27,8 @@ extern struct inode_operations coda_dir_inode_operations;
 extern struct inode_operations coda_file_inode_operations;
 extern struct inode_operations coda_file_inode_operations;
 extern struct inode_operations coda_ioctl_inode_operations;
 extern struct inode_operations coda_ioctl_inode_operations;
 
 
-extern struct address_space_operations coda_file_aops;
-extern struct address_space_operations coda_symlink_aops;
+extern const struct address_space_operations coda_file_aops;
+extern const struct address_space_operations coda_symlink_aops;
 
 
 extern const struct file_operations coda_dir_operations;
 extern const struct file_operations coda_dir_operations;
 extern const struct file_operations coda_file_operations;
 extern const struct file_operations coda_file_operations;

+ 1 - 1
include/linux/efs_fs.h

@@ -38,7 +38,7 @@ struct statfs;
 
 
 extern struct inode_operations efs_dir_inode_operations;
 extern struct inode_operations efs_dir_inode_operations;
 extern const struct file_operations efs_dir_operations;
 extern const struct file_operations efs_dir_operations;
-extern struct address_space_operations efs_symlink_aops;
+extern const struct address_space_operations efs_symlink_aops;
 
 
 extern void efs_read_inode(struct inode *);
 extern void efs_read_inode(struct inode *);
 extern efs_block_t efs_map_block(struct inode *, efs_block_t);
 extern efs_block_t efs_map_block(struct inode *, efs_block_t);

+ 2 - 2
include/linux/fs.h

@@ -392,7 +392,7 @@ struct address_space {
 	unsigned int		truncate_count;	/* Cover race condition with truncate */
 	unsigned int		truncate_count;	/* Cover race condition with truncate */
 	unsigned long		nrpages;	/* number of total pages */
 	unsigned long		nrpages;	/* number of total pages */
 	pgoff_t			writeback_index;/* writeback starts here */
 	pgoff_t			writeback_index;/* writeback starts here */
-	struct address_space_operations *a_ops;	/* methods */
+	const struct address_space_operations *a_ops;	/* methods */
 	unsigned long		flags;		/* error bits/gfp mask */
 	unsigned long		flags;		/* error bits/gfp mask */
 	struct backing_dev_info *backing_dev_info; /* device readahead, etc */
 	struct backing_dev_info *backing_dev_info; /* device readahead, etc */
 	spinlock_t		private_lock;	/* for use by the address_space */
 	spinlock_t		private_lock;	/* for use by the address_space */
@@ -1405,7 +1405,7 @@ extern void bd_forget(struct inode *inode);
 extern void bdput(struct block_device *);
 extern void bdput(struct block_device *);
 extern struct block_device *open_by_devnum(dev_t, unsigned);
 extern struct block_device *open_by_devnum(dev_t, unsigned);
 extern const struct file_operations def_blk_fops;
 extern const struct file_operations def_blk_fops;
-extern struct address_space_operations def_blk_aops;
+extern const struct address_space_operations def_blk_aops;
 extern const struct file_operations def_chr_fops;
 extern const struct file_operations def_chr_fops;
 extern const struct file_operations bad_sock_fops;
 extern const struct file_operations bad_sock_fops;
 extern const struct file_operations def_fifo_fops;
 extern const struct file_operations def_fifo_fops;

+ 1 - 1
include/linux/nfs_fs.h

@@ -335,7 +335,7 @@ extern struct inode_operations nfs_file_inode_operations;
 extern struct inode_operations nfs3_file_inode_operations;
 extern struct inode_operations nfs3_file_inode_operations;
 #endif /* CONFIG_NFS_V3 */
 #endif /* CONFIG_NFS_V3 */
 extern const struct file_operations nfs_file_operations;
 extern const struct file_operations nfs_file_operations;
-extern struct address_space_operations nfs_file_aops;
+extern const struct address_space_operations nfs_file_aops;
 
 
 static inline struct rpc_cred *nfs_file_cred(struct file *file)
 static inline struct rpc_cred *nfs_file_cred(struct file *file)
 {
 {

+ 1 - 1
include/linux/reiserfs_fs.h

@@ -1973,7 +1973,7 @@ void reiserfs_unmap_buffer(struct buffer_head *);
 /* file.c */
 /* file.c */
 extern struct inode_operations reiserfs_file_inode_operations;
 extern struct inode_operations reiserfs_file_inode_operations;
 extern const struct file_operations reiserfs_file_operations;
 extern const struct file_operations reiserfs_file_operations;
-extern struct address_space_operations reiserfs_address_space_operations;
+extern const struct address_space_operations reiserfs_address_space_operations;
 
 
 /* fix_nodes.c */
 /* fix_nodes.c */
 
 

+ 1 - 1
include/linux/ufs_fs.h

@@ -966,7 +966,7 @@ extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
 extern struct inode_operations ufs_file_inode_operations;
 extern struct inode_operations ufs_file_inode_operations;
 extern const struct file_operations ufs_file_operations;
 extern const struct file_operations ufs_file_operations;
 
 
-extern struct address_space_operations ufs_aops;
+extern const struct address_space_operations ufs_aops;
 
 
 /* ialloc.c */
 /* ialloc.c */
 extern void ufs_free_inode (struct inode *inode);
 extern void ufs_free_inode (struct inode *inode);

+ 2 - 2
mm/filemap.c

@@ -2069,7 +2069,7 @@ generic_file_buffered_write(struct kiocb *iocb, const struct iovec *iov,
 {
 {
 	struct file *file = iocb->ki_filp;
 	struct file *file = iocb->ki_filp;
 	struct address_space * mapping = file->f_mapping;
 	struct address_space * mapping = file->f_mapping;
-	struct address_space_operations *a_ops = mapping->a_ops;
+	const struct address_space_operations *a_ops = mapping->a_ops;
 	struct inode 	*inode = mapping->host;
 	struct inode 	*inode = mapping->host;
 	long		status = 0;
 	long		status = 0;
 	struct page	*page;
 	struct page	*page;
@@ -2219,7 +2219,7 @@ __generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov,
 				unsigned long nr_segs, loff_t *ppos)
 				unsigned long nr_segs, loff_t *ppos)
 {
 {
 	struct file *file = iocb->ki_filp;
 	struct file *file = iocb->ki_filp;
-	struct address_space * mapping = file->f_mapping;
+	const struct address_space * mapping = file->f_mapping;
 	size_t ocount;		/* original count */
 	size_t ocount;		/* original count */
 	size_t count;		/* after file limit checks */
 	size_t count;		/* after file limit checks */
 	struct inode 	*inode = mapping->host;
 	struct inode 	*inode = mapping->host;

+ 1 - 1
mm/filemap_xip.c

@@ -273,7 +273,7 @@ __xip_file_write(struct file *filp, const char __user *buf,
 		  size_t count, loff_t pos, loff_t *ppos)
 		  size_t count, loff_t pos, loff_t *ppos)
 {
 {
 	struct address_space * mapping = filp->f_mapping;
 	struct address_space * mapping = filp->f_mapping;
-	struct address_space_operations *a_ops = mapping->a_ops;
+	const struct address_space_operations *a_ops = mapping->a_ops;
 	struct inode 	*inode = mapping->host;
 	struct inode 	*inode = mapping->host;
 	long		status = 0;
 	long		status = 0;
 	struct page	*page;
 	struct page	*page;

+ 2 - 2
mm/shmem.c

@@ -174,7 +174,7 @@ static inline void shmem_unacct_blocks(unsigned long flags, long pages)
 }
 }
 
 
 static struct super_operations shmem_ops;
 static struct super_operations shmem_ops;
-static struct address_space_operations shmem_aops;
+static const struct address_space_operations shmem_aops;
 static struct file_operations shmem_file_operations;
 static struct file_operations shmem_file_operations;
 static struct inode_operations shmem_inode_operations;
 static struct inode_operations shmem_inode_operations;
 static struct inode_operations shmem_dir_inode_operations;
 static struct inode_operations shmem_dir_inode_operations;
@@ -2162,7 +2162,7 @@ static void destroy_inodecache(void)
 		printk(KERN_INFO "shmem_inode_cache: not all structures were freed\n");
 		printk(KERN_INFO "shmem_inode_cache: not all structures were freed\n");
 }
 }
 
 
-static struct address_space_operations shmem_aops = {
+static const struct address_space_operations shmem_aops = {
 	.writepage	= shmem_writepage,
 	.writepage	= shmem_writepage,
 	.set_page_dirty	= __set_page_dirty_nobuffers,
 	.set_page_dirty	= __set_page_dirty_nobuffers,
 #ifdef CONFIG_TMPFS
 #ifdef CONFIG_TMPFS

+ 1 - 1
mm/swap_state.c

@@ -24,7 +24,7 @@
  * vmscan's shrink_list, to make sync_page look nicer, and to allow
  * vmscan's shrink_list, to make sync_page look nicer, and to allow
  * future use of radix_tree tags in the swap cache.
  * future use of radix_tree tags in the swap cache.
  */
  */
-static struct address_space_operations swap_aops = {
+static const struct address_space_operations swap_aops = {
 	.writepage	= swap_writepage,
 	.writepage	= swap_writepage,
 	.sync_page	= block_sync_page,
 	.sync_page	= block_sync_page,
 	.set_page_dirty	= __set_page_dirty_nobuffers,
 	.set_page_dirty	= __set_page_dirty_nobuffers,