diff options
author | Christoph Hellwig <hch@lst.de> | 2015-01-14 04:42:37 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-01-20 16:03:05 -0500 |
commit | b83ae6d421435c6204150300f1c25bfbd39cd62b (patch) | |
tree | 99c6b661ab7de05c2fd49aa62624d2d6bf8abc69 | |
parent | de1414a654e66b81b5348dbc5259ecf2fb61655e (diff) |
fs: remove mapping->backing_dev_info
Now that we never use the backing_dev_info pointer in struct address_space
we can simply remove it and save 4 to 8 bytes in every inode.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Reviewed-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/char/raw.c | 4 | ||||
-rw-r--r-- | fs/aio.c | 1 | ||||
-rw-r--r-- | fs/block_dev.c | 26 | ||||
-rw-r--r-- | fs/btrfs/disk-io.c | 1 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 6 | ||||
-rw-r--r-- | fs/ceph/inode.c | 2 | ||||
-rw-r--r-- | fs/cifs/inode.c | 2 | ||||
-rw-r--r-- | fs/configfs/inode.c | 1 | ||||
-rw-r--r-- | fs/ecryptfs/inode.c | 1 | ||||
-rw-r--r-- | fs/exofs/inode.c | 2 | ||||
-rw-r--r-- | fs/fuse/inode.c | 1 | ||||
-rw-r--r-- | fs/gfs2/glock.c | 1 | ||||
-rw-r--r-- | fs/gfs2/ops_fstype.c | 1 | ||||
-rw-r--r-- | fs/hugetlbfs/inode.c | 1 | ||||
-rw-r--r-- | fs/inode.c | 13 | ||||
-rw-r--r-- | fs/kernfs/inode.c | 1 | ||||
-rw-r--r-- | fs/ncpfs/inode.c | 1 | ||||
-rw-r--r-- | fs/nfs/inode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/gcinode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/mdt.c | 6 | ||||
-rw-r--r-- | fs/nilfs2/page.c | 4 | ||||
-rw-r--r-- | fs/nilfs2/page.h | 3 | ||||
-rw-r--r-- | fs/nilfs2/super.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/dlmfs/dlmfs.c | 2 | ||||
-rw-r--r-- | fs/ramfs/inode.c | 1 | ||||
-rw-r--r-- | fs/romfs/super.c | 3 | ||||
-rw-r--r-- | fs/ubifs/dir.c | 2 | ||||
-rw-r--r-- | fs/ubifs/super.c | 3 | ||||
-rw-r--r-- | include/linux/fs.h | 3 | ||||
-rw-r--r-- | mm/backing-dev.c | 1 | ||||
-rw-r--r-- | mm/shmem.c | 1 | ||||
-rw-r--r-- | mm/swap_state.c | 1 |
32 files changed, 8 insertions, 91 deletions
diff --git a/drivers/char/raw.c b/drivers/char/raw.c index a24891b97547..6e29bf2db536 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c | |||
@@ -104,11 +104,9 @@ static int raw_release(struct inode *inode, struct file *filp) | |||
104 | 104 | ||
105 | mutex_lock(&raw_mutex); | 105 | mutex_lock(&raw_mutex); |
106 | bdev = raw_devices[minor].binding; | 106 | bdev = raw_devices[minor].binding; |
107 | if (--raw_devices[minor].inuse == 0) { | 107 | if (--raw_devices[minor].inuse == 0) |
108 | /* Here inode->i_mapping == bdev->bd_inode->i_mapping */ | 108 | /* Here inode->i_mapping == bdev->bd_inode->i_mapping */ |
109 | inode->i_mapping = &inode->i_data; | 109 | inode->i_mapping = &inode->i_data; |
110 | inode->i_mapping->backing_dev_info = &default_backing_dev_info; | ||
111 | } | ||
112 | mutex_unlock(&raw_mutex); | 110 | mutex_unlock(&raw_mutex); |
113 | 111 | ||
114 | blkdev_put(bdev, filp->f_mode | FMODE_EXCL); | 112 | blkdev_put(bdev, filp->f_mode | FMODE_EXCL); |
@@ -176,7 +176,6 @@ static struct file *aio_private_file(struct kioctx *ctx, loff_t nr_pages) | |||
176 | 176 | ||
177 | inode->i_mapping->a_ops = &aio_ctx_aops; | 177 | inode->i_mapping->a_ops = &aio_ctx_aops; |
178 | inode->i_mapping->private_data = ctx; | 178 | inode->i_mapping->private_data = ctx; |
179 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
180 | inode->i_size = PAGE_SIZE * nr_pages; | 179 | inode->i_size = PAGE_SIZE * nr_pages; |
181 | 180 | ||
182 | path.dentry = d_alloc_pseudo(aio_mnt->mnt_sb, &this); | 181 | path.dentry = d_alloc_pseudo(aio_mnt->mnt_sb, &this); |
diff --git a/fs/block_dev.c b/fs/block_dev.c index 026ca7b8431c..a9f92794d7a0 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -60,19 +60,6 @@ static void bdev_write_inode(struct inode *inode) | |||
60 | spin_unlock(&inode->i_lock); | 60 | spin_unlock(&inode->i_lock); |
61 | } | 61 | } |
62 | 62 | ||
63 | /* | ||
64 | * Move the inode from its current bdi to a new bdi. Make sure the inode | ||
65 | * is clean before moving so that it doesn't linger on the old bdi. | ||
66 | */ | ||
67 | static void bdev_inode_switch_bdi(struct inode *inode, | ||
68 | struct backing_dev_info *dst) | ||
69 | { | ||
70 | spin_lock(&inode->i_lock); | ||
71 | WARN_ON_ONCE(inode->i_state & I_DIRTY); | ||
72 | inode->i_data.backing_dev_info = dst; | ||
73 | spin_unlock(&inode->i_lock); | ||
74 | } | ||
75 | |||
76 | /* Kill _all_ buffers and pagecache , dirty or not.. */ | 63 | /* Kill _all_ buffers and pagecache , dirty or not.. */ |
77 | void kill_bdev(struct block_device *bdev) | 64 | void kill_bdev(struct block_device *bdev) |
78 | { | 65 | { |
@@ -589,7 +576,6 @@ struct block_device *bdget(dev_t dev) | |||
589 | inode->i_bdev = bdev; | 576 | inode->i_bdev = bdev; |
590 | inode->i_data.a_ops = &def_blk_aops; | 577 | inode->i_data.a_ops = &def_blk_aops; |
591 | mapping_set_gfp_mask(&inode->i_data, GFP_USER); | 578 | mapping_set_gfp_mask(&inode->i_data, GFP_USER); |
592 | inode->i_data.backing_dev_info = &default_backing_dev_info; | ||
593 | spin_lock(&bdev_lock); | 579 | spin_lock(&bdev_lock); |
594 | list_add(&bdev->bd_list, &all_bdevs); | 580 | list_add(&bdev->bd_list, &all_bdevs); |
595 | spin_unlock(&bdev_lock); | 581 | spin_unlock(&bdev_lock); |
@@ -1150,8 +1136,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) | |||
1150 | bdev->bd_queue = disk->queue; | 1136 | bdev->bd_queue = disk->queue; |
1151 | bdev->bd_contains = bdev; | 1137 | bdev->bd_contains = bdev; |
1152 | if (!partno) { | 1138 | if (!partno) { |
1153 | struct backing_dev_info *bdi; | ||
1154 | |||
1155 | ret = -ENXIO; | 1139 | ret = -ENXIO; |
1156 | bdev->bd_part = disk_get_part(disk, partno); | 1140 | bdev->bd_part = disk_get_part(disk, partno); |
1157 | if (!bdev->bd_part) | 1141 | if (!bdev->bd_part) |
@@ -1177,11 +1161,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) | |||
1177 | } | 1161 | } |
1178 | } | 1162 | } |
1179 | 1163 | ||
1180 | if (!ret) { | 1164 | if (!ret) |
1181 | bd_set_size(bdev,(loff_t)get_capacity(disk)<<9); | 1165 | bd_set_size(bdev,(loff_t)get_capacity(disk)<<9); |
1182 | bdi = blk_get_backing_dev_info(bdev); | ||
1183 | bdev_inode_switch_bdi(bdev->bd_inode, bdi); | ||
1184 | } | ||
1185 | 1166 | ||
1186 | /* | 1167 | /* |
1187 | * If the device is invalidated, rescan partition | 1168 | * If the device is invalidated, rescan partition |
@@ -1208,8 +1189,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) | |||
1208 | if (ret) | 1189 | if (ret) |
1209 | goto out_clear; | 1190 | goto out_clear; |
1210 | bdev->bd_contains = whole; | 1191 | bdev->bd_contains = whole; |
1211 | bdev_inode_switch_bdi(bdev->bd_inode, | ||
1212 | whole->bd_inode->i_data.backing_dev_info); | ||
1213 | bdev->bd_part = disk_get_part(disk, partno); | 1192 | bdev->bd_part = disk_get_part(disk, partno); |
1214 | if (!(disk->flags & GENHD_FL_UP) || | 1193 | if (!(disk->flags & GENHD_FL_UP) || |
1215 | !bdev->bd_part || !bdev->bd_part->nr_sects) { | 1194 | !bdev->bd_part || !bdev->bd_part->nr_sects) { |
@@ -1249,7 +1228,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) | |||
1249 | bdev->bd_disk = NULL; | 1228 | bdev->bd_disk = NULL; |
1250 | bdev->bd_part = NULL; | 1229 | bdev->bd_part = NULL; |
1251 | bdev->bd_queue = NULL; | 1230 | bdev->bd_queue = NULL; |
1252 | bdev_inode_switch_bdi(bdev->bd_inode, &default_backing_dev_info); | ||
1253 | if (bdev != bdev->bd_contains) | 1231 | if (bdev != bdev->bd_contains) |
1254 | __blkdev_put(bdev->bd_contains, mode, 1); | 1232 | __blkdev_put(bdev->bd_contains, mode, 1); |
1255 | bdev->bd_contains = NULL; | 1233 | bdev->bd_contains = NULL; |
@@ -1474,8 +1452,6 @@ static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part) | |||
1474 | * dirty data before. | 1452 | * dirty data before. |
1475 | */ | 1453 | */ |
1476 | bdev_write_inode(bdev->bd_inode); | 1454 | bdev_write_inode(bdev->bd_inode); |
1477 | bdev_inode_switch_bdi(bdev->bd_inode, | ||
1478 | &default_backing_dev_info); | ||
1479 | } | 1455 | } |
1480 | if (bdev->bd_contains == bdev) { | 1456 | if (bdev->bd_contains == bdev) { |
1481 | if (disk->fops->release) | 1457 | if (disk->fops->release) |
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index afc4092989cd..1ec872e3a926 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -2318,7 +2318,6 @@ int open_ctree(struct super_block *sb, | |||
2318 | */ | 2318 | */ |
2319 | fs_info->btree_inode->i_size = OFFSET_MAX; | 2319 | fs_info->btree_inode->i_size = OFFSET_MAX; |
2320 | fs_info->btree_inode->i_mapping->a_ops = &btree_aops; | 2320 | fs_info->btree_inode->i_mapping->a_ops = &btree_aops; |
2321 | fs_info->btree_inode->i_mapping->backing_dev_info = &fs_info->bdi; | ||
2322 | 2321 | ||
2323 | RB_CLEAR_NODE(&BTRFS_I(fs_info->btree_inode)->rb_node); | 2322 | RB_CLEAR_NODE(&BTRFS_I(fs_info->btree_inode)->rb_node); |
2324 | extent_io_tree_init(&BTRFS_I(fs_info->btree_inode)->io_tree, | 2323 | extent_io_tree_init(&BTRFS_I(fs_info->btree_inode)->io_tree, |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 8bf326affb94..54bcf639d1cf 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -3608,7 +3608,6 @@ cache_acl: | |||
3608 | switch (inode->i_mode & S_IFMT) { | 3608 | switch (inode->i_mode & S_IFMT) { |
3609 | case S_IFREG: | 3609 | case S_IFREG: |
3610 | inode->i_mapping->a_ops = &btrfs_aops; | 3610 | inode->i_mapping->a_ops = &btrfs_aops; |
3611 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
3612 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; | 3611 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; |
3613 | inode->i_fop = &btrfs_file_operations; | 3612 | inode->i_fop = &btrfs_file_operations; |
3614 | inode->i_op = &btrfs_file_inode_operations; | 3613 | inode->i_op = &btrfs_file_inode_operations; |
@@ -3623,7 +3622,6 @@ cache_acl: | |||
3623 | case S_IFLNK: | 3622 | case S_IFLNK: |
3624 | inode->i_op = &btrfs_symlink_inode_operations; | 3623 | inode->i_op = &btrfs_symlink_inode_operations; |
3625 | inode->i_mapping->a_ops = &btrfs_symlink_aops; | 3624 | inode->i_mapping->a_ops = &btrfs_symlink_aops; |
3626 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
3627 | break; | 3625 | break; |
3628 | default: | 3626 | default: |
3629 | inode->i_op = &btrfs_special_inode_operations; | 3627 | inode->i_op = &btrfs_special_inode_operations; |
@@ -6088,7 +6086,6 @@ static int btrfs_create(struct inode *dir, struct dentry *dentry, | |||
6088 | inode->i_fop = &btrfs_file_operations; | 6086 | inode->i_fop = &btrfs_file_operations; |
6089 | inode->i_op = &btrfs_file_inode_operations; | 6087 | inode->i_op = &btrfs_file_inode_operations; |
6090 | inode->i_mapping->a_ops = &btrfs_aops; | 6088 | inode->i_mapping->a_ops = &btrfs_aops; |
6091 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
6092 | 6089 | ||
6093 | err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); | 6090 | err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); |
6094 | if (err) | 6091 | if (err) |
@@ -9203,7 +9200,6 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, | |||
9203 | inode->i_fop = &btrfs_file_operations; | 9200 | inode->i_fop = &btrfs_file_operations; |
9204 | inode->i_op = &btrfs_file_inode_operations; | 9201 | inode->i_op = &btrfs_file_inode_operations; |
9205 | inode->i_mapping->a_ops = &btrfs_aops; | 9202 | inode->i_mapping->a_ops = &btrfs_aops; |
9206 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
9207 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; | 9203 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; |
9208 | 9204 | ||
9209 | err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); | 9205 | err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); |
@@ -9247,7 +9243,6 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, | |||
9247 | 9243 | ||
9248 | inode->i_op = &btrfs_symlink_inode_operations; | 9244 | inode->i_op = &btrfs_symlink_inode_operations; |
9249 | inode->i_mapping->a_ops = &btrfs_symlink_aops; | 9245 | inode->i_mapping->a_ops = &btrfs_symlink_aops; |
9250 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
9251 | inode_set_bytes(inode, name_len); | 9246 | inode_set_bytes(inode, name_len); |
9252 | btrfs_i_size_write(inode, name_len); | 9247 | btrfs_i_size_write(inode, name_len); |
9253 | err = btrfs_update_inode(trans, root, inode); | 9248 | err = btrfs_update_inode(trans, root, inode); |
@@ -9459,7 +9454,6 @@ static int btrfs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) | |||
9459 | inode->i_op = &btrfs_file_inode_operations; | 9454 | inode->i_op = &btrfs_file_inode_operations; |
9460 | 9455 | ||
9461 | inode->i_mapping->a_ops = &btrfs_aops; | 9456 | inode->i_mapping->a_ops = &btrfs_aops; |
9462 | inode->i_mapping->backing_dev_info = &root->fs_info->bdi; | ||
9463 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; | 9457 | BTRFS_I(inode)->io_tree.ops = &btrfs_extent_io_ops; |
9464 | 9458 | ||
9465 | ret = btrfs_init_inode_security(trans, inode, dir, NULL); | 9459 | ret = btrfs_init_inode_security(trans, inode, dir, NULL); |
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index f61a74115beb..6b5173605154 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
@@ -783,8 +783,6 @@ static int fill_inode(struct inode *inode, struct page *locked_page, | |||
783 | } | 783 | } |
784 | 784 | ||
785 | inode->i_mapping->a_ops = &ceph_aops; | 785 | inode->i_mapping->a_ops = &ceph_aops; |
786 | inode->i_mapping->backing_dev_info = | ||
787 | &ceph_sb_to_client(inode->i_sb)->backing_dev_info; | ||
788 | 786 | ||
789 | switch (inode->i_mode & S_IFMT) { | 787 | switch (inode->i_mode & S_IFMT) { |
790 | case S_IFIFO: | 788 | case S_IFIFO: |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 0c3ce464cae4..2d4f37235ed0 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -937,8 +937,6 @@ retry_iget5_locked: | |||
937 | inode->i_flags |= S_NOATIME | S_NOCMTIME; | 937 | inode->i_flags |= S_NOATIME | S_NOCMTIME; |
938 | if (inode->i_state & I_NEW) { | 938 | if (inode->i_state & I_NEW) { |
939 | inode->i_ino = hash; | 939 | inode->i_ino = hash; |
940 | if (S_ISREG(inode->i_mode)) | ||
941 | inode->i_data.backing_dev_info = sb->s_bdi; | ||
942 | #ifdef CONFIG_CIFS_FSCACHE | 940 | #ifdef CONFIG_CIFS_FSCACHE |
943 | /* initialize per-inode cache cookie pointer */ | 941 | /* initialize per-inode cache cookie pointer */ |
944 | CIFS_I(inode)->fscache = NULL; | 942 | CIFS_I(inode)->fscache = NULL; |
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c index 0ad6b4d6de00..65af86147154 100644 --- a/fs/configfs/inode.c +++ b/fs/configfs/inode.c | |||
@@ -131,7 +131,6 @@ struct inode *configfs_new_inode(umode_t mode, struct configfs_dirent *sd, | |||
131 | if (inode) { | 131 | if (inode) { |
132 | inode->i_ino = get_next_ino(); | 132 | inode->i_ino = get_next_ino(); |
133 | inode->i_mapping->a_ops = &configfs_aops; | 133 | inode->i_mapping->a_ops = &configfs_aops; |
134 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
135 | inode->i_op = &configfs_inode_operations; | 134 | inode->i_op = &configfs_inode_operations; |
136 | 135 | ||
137 | if (sd->s_iattr) { | 136 | if (sd->s_iattr) { |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 1686dc2da9fd..34b36a504059 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -67,7 +67,6 @@ static int ecryptfs_inode_set(struct inode *inode, void *opaque) | |||
67 | inode->i_ino = lower_inode->i_ino; | 67 | inode->i_ino = lower_inode->i_ino; |
68 | inode->i_version++; | 68 | inode->i_version++; |
69 | inode->i_mapping->a_ops = &ecryptfs_aops; | 69 | inode->i_mapping->a_ops = &ecryptfs_aops; |
70 | inode->i_mapping->backing_dev_info = inode->i_sb->s_bdi; | ||
71 | 70 | ||
72 | if (S_ISLNK(inode->i_mode)) | 71 | if (S_ISLNK(inode->i_mode)) |
73 | inode->i_op = &ecryptfs_symlink_iops; | 72 | inode->i_op = &ecryptfs_symlink_iops; |
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c index f1d3d4eb8c4f..6fc91df99ff8 100644 --- a/fs/exofs/inode.c +++ b/fs/exofs/inode.c | |||
@@ -1214,7 +1214,6 @@ struct inode *exofs_iget(struct super_block *sb, unsigned long ino) | |||
1214 | memcpy(oi->i_data, fcb.i_data, sizeof(fcb.i_data)); | 1214 | memcpy(oi->i_data, fcb.i_data, sizeof(fcb.i_data)); |
1215 | } | 1215 | } |
1216 | 1216 | ||
1217 | inode->i_mapping->backing_dev_info = sb->s_bdi; | ||
1218 | if (S_ISREG(inode->i_mode)) { | 1217 | if (S_ISREG(inode->i_mode)) { |
1219 | inode->i_op = &exofs_file_inode_operations; | 1218 | inode->i_op = &exofs_file_inode_operations; |
1220 | inode->i_fop = &exofs_file_operations; | 1219 | inode->i_fop = &exofs_file_operations; |
@@ -1314,7 +1313,6 @@ struct inode *exofs_new_inode(struct inode *dir, umode_t mode) | |||
1314 | 1313 | ||
1315 | set_obj_2bcreated(oi); | 1314 | set_obj_2bcreated(oi); |
1316 | 1315 | ||
1317 | inode->i_mapping->backing_dev_info = sb->s_bdi; | ||
1318 | inode_init_owner(inode, dir, mode); | 1316 | inode_init_owner(inode, dir, mode); |
1319 | inode->i_ino = sbi->s_nextid++; | 1317 | inode->i_ino = sbi->s_nextid++; |
1320 | inode->i_blkbits = EXOFS_BLKSHIFT; | 1318 | inode->i_blkbits = EXOFS_BLKSHIFT; |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index f38256e4476e..e8799c11424b 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -308,7 +308,6 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid, | |||
308 | if (!fc->writeback_cache || !S_ISREG(attr->mode)) | 308 | if (!fc->writeback_cache || !S_ISREG(attr->mode)) |
309 | inode->i_flags |= S_NOCMTIME; | 309 | inode->i_flags |= S_NOCMTIME; |
310 | inode->i_generation = generation; | 310 | inode->i_generation = generation; |
311 | inode->i_data.backing_dev_info = &fc->bdi; | ||
312 | fuse_init_inode(inode, attr); | 311 | fuse_init_inode(inode, attr); |
313 | unlock_new_inode(inode); | 312 | unlock_new_inode(inode); |
314 | } else if ((inode->i_mode ^ attr->mode) & S_IFMT) { | 313 | } else if ((inode->i_mode ^ attr->mode) & S_IFMT) { |
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index a23524aa3eac..08ea717981f7 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c | |||
@@ -775,7 +775,6 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, | |||
775 | mapping->flags = 0; | 775 | mapping->flags = 0; |
776 | mapping_set_gfp_mask(mapping, GFP_NOFS); | 776 | mapping_set_gfp_mask(mapping, GFP_NOFS); |
777 | mapping->private_data = NULL; | 777 | mapping->private_data = NULL; |
778 | mapping->backing_dev_info = s->s_bdi; | ||
779 | mapping->writeback_index = 0; | 778 | mapping->writeback_index = 0; |
780 | } | 779 | } |
781 | 780 | ||
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 8633ad328ee2..efc8e254787c 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c | |||
@@ -112,7 +112,6 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb) | |||
112 | mapping->flags = 0; | 112 | mapping->flags = 0; |
113 | mapping_set_gfp_mask(mapping, GFP_NOFS); | 113 | mapping_set_gfp_mask(mapping, GFP_NOFS); |
114 | mapping->private_data = NULL; | 114 | mapping->private_data = NULL; |
115 | mapping->backing_dev_info = sb->s_bdi; | ||
116 | mapping->writeback_index = 0; | 115 | mapping->writeback_index = 0; |
117 | 116 | ||
118 | spin_lock_init(&sdp->sd_log_lock); | 117 | spin_lock_init(&sdp->sd_log_lock); |
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index de7c95c7d840..c274aca8e8dc 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c | |||
@@ -492,7 +492,6 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb, | |||
492 | lockdep_set_class(&inode->i_mapping->i_mmap_rwsem, | 492 | lockdep_set_class(&inode->i_mapping->i_mmap_rwsem, |
493 | &hugetlbfs_i_mmap_rwsem_key); | 493 | &hugetlbfs_i_mmap_rwsem_key); |
494 | inode->i_mapping->a_ops = &hugetlbfs_aops; | 494 | inode->i_mapping->a_ops = &hugetlbfs_aops; |
495 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
496 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 495 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
497 | inode->i_mapping->private_data = resv_map; | 496 | inode->i_mapping->private_data = resv_map; |
498 | info = HUGETLBFS_I(inode); | 497 | info = HUGETLBFS_I(inode); |
diff --git a/fs/inode.c b/fs/inode.c index aa149e7262ac..e4e8caa7464c 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -170,20 +170,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode) | |||
170 | atomic_set(&mapping->i_mmap_writable, 0); | 170 | atomic_set(&mapping->i_mmap_writable, 0); |
171 | mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE); | 171 | mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE); |
172 | mapping->private_data = NULL; | 172 | mapping->private_data = NULL; |
173 | mapping->backing_dev_info = &default_backing_dev_info; | ||
174 | mapping->writeback_index = 0; | 173 | mapping->writeback_index = 0; |
175 | |||
176 | /* | ||
177 | * If the block_device provides a backing_dev_info for client | ||
178 | * inodes then use that. Otherwise the inode share the bdev's | ||
179 | * backing_dev_info. | ||
180 | */ | ||
181 | if (sb->s_bdev) { | ||
182 | struct backing_dev_info *bdi; | ||
183 | |||
184 | bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; | ||
185 | mapping->backing_dev_info = bdi; | ||
186 | } | ||
187 | inode->i_private = NULL; | 174 | inode->i_private = NULL; |
188 | inode->i_mapping = mapping; | 175 | inode->i_mapping = mapping; |
189 | INIT_HLIST_HEAD(&inode->i_dentry); /* buggered by rcu freeing */ | 176 | INIT_HLIST_HEAD(&inode->i_dentry); /* buggered by rcu freeing */ |
diff --git a/fs/kernfs/inode.c b/fs/kernfs/inode.c index 06f06887b2d2..9000874a945b 100644 --- a/fs/kernfs/inode.c +++ b/fs/kernfs/inode.c | |||
@@ -286,7 +286,6 @@ static void kernfs_init_inode(struct kernfs_node *kn, struct inode *inode) | |||
286 | kernfs_get(kn); | 286 | kernfs_get(kn); |
287 | inode->i_private = kn; | 287 | inode->i_private = kn; |
288 | inode->i_mapping->a_ops = &kernfs_aops; | 288 | inode->i_mapping->a_ops = &kernfs_aops; |
289 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
290 | inode->i_op = &kernfs_iops; | 289 | inode->i_op = &kernfs_iops; |
291 | 290 | ||
292 | set_default_inode_attr(inode, kn->mode); | 291 | set_default_inode_attr(inode, kn->mode); |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index a699a3fc62c0..01a9e16e9782 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -267,7 +267,6 @@ ncp_iget(struct super_block *sb, struct ncp_entry_info *info) | |||
267 | if (inode) { | 267 | if (inode) { |
268 | atomic_set(&NCP_FINFO(inode)->opened, info->opened); | 268 | atomic_set(&NCP_FINFO(inode)->opened, info->opened); |
269 | 269 | ||
270 | inode->i_mapping->backing_dev_info = sb->s_bdi; | ||
271 | inode->i_ino = info->ino; | 270 | inode->i_ino = info->ino; |
272 | ncp_set_attr(inode, info); | 271 | ncp_set_attr(inode, info); |
273 | if (S_ISREG(inode->i_mode)) { | 272 | if (S_ISREG(inode->i_mode)) { |
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 4bffe637ea32..24aac72420f4 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -387,7 +387,6 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr, st | |||
387 | if (S_ISREG(inode->i_mode)) { | 387 | if (S_ISREG(inode->i_mode)) { |
388 | inode->i_fop = NFS_SB(sb)->nfs_client->rpc_ops->file_ops; | 388 | inode->i_fop = NFS_SB(sb)->nfs_client->rpc_ops->file_ops; |
389 | inode->i_data.a_ops = &nfs_file_aops; | 389 | inode->i_data.a_ops = &nfs_file_aops; |
390 | inode->i_data.backing_dev_info = &NFS_SB(sb)->backing_dev_info; | ||
391 | } else if (S_ISDIR(inode->i_mode)) { | 390 | } else if (S_ISDIR(inode->i_mode)) { |
392 | inode->i_op = NFS_SB(sb)->nfs_client->rpc_ops->dir_inode_ops; | 391 | inode->i_op = NFS_SB(sb)->nfs_client->rpc_ops->dir_inode_ops; |
393 | inode->i_fop = &nfs_dir_operations; | 392 | inode->i_fop = &nfs_dir_operations; |
diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c index 57ceaf33d177..748ca238915a 100644 --- a/fs/nilfs2/gcinode.c +++ b/fs/nilfs2/gcinode.c | |||
@@ -172,7 +172,6 @@ int nilfs_init_gcinode(struct inode *inode) | |||
172 | inode->i_mode = S_IFREG; | 172 | inode->i_mode = S_IFREG; |
173 | mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS); | 173 | mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS); |
174 | inode->i_mapping->a_ops = &empty_aops; | 174 | inode->i_mapping->a_ops = &empty_aops; |
175 | inode->i_mapping->backing_dev_info = inode->i_sb->s_bdi; | ||
176 | 175 | ||
177 | ii->i_flags = 0; | 176 | ii->i_flags = 0; |
178 | nilfs_bmap_init_gc(ii->i_bmap); | 177 | nilfs_bmap_init_gc(ii->i_bmap); |
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c index c4dcd1db57ee..892cf5ffdb8e 100644 --- a/fs/nilfs2/mdt.c +++ b/fs/nilfs2/mdt.c | |||
@@ -429,7 +429,6 @@ int nilfs_mdt_init(struct inode *inode, gfp_t gfp_mask, size_t objsz) | |||
429 | 429 | ||
430 | inode->i_mode = S_IFREG; | 430 | inode->i_mode = S_IFREG; |
431 | mapping_set_gfp_mask(inode->i_mapping, gfp_mask); | 431 | mapping_set_gfp_mask(inode->i_mapping, gfp_mask); |
432 | inode->i_mapping->backing_dev_info = inode->i_sb->s_bdi; | ||
433 | 432 | ||
434 | inode->i_op = &def_mdt_iops; | 433 | inode->i_op = &def_mdt_iops; |
435 | inode->i_fop = &def_mdt_fops; | 434 | inode->i_fop = &def_mdt_fops; |
@@ -457,13 +456,12 @@ int nilfs_mdt_setup_shadow_map(struct inode *inode, | |||
457 | struct nilfs_shadow_map *shadow) | 456 | struct nilfs_shadow_map *shadow) |
458 | { | 457 | { |
459 | struct nilfs_mdt_info *mi = NILFS_MDT(inode); | 458 | struct nilfs_mdt_info *mi = NILFS_MDT(inode); |
460 | struct backing_dev_info *bdi = inode->i_sb->s_bdi; | ||
461 | 459 | ||
462 | INIT_LIST_HEAD(&shadow->frozen_buffers); | 460 | INIT_LIST_HEAD(&shadow->frozen_buffers); |
463 | address_space_init_once(&shadow->frozen_data); | 461 | address_space_init_once(&shadow->frozen_data); |
464 | nilfs_mapping_init(&shadow->frozen_data, inode, bdi); | 462 | nilfs_mapping_init(&shadow->frozen_data, inode); |
465 | address_space_init_once(&shadow->frozen_btnodes); | 463 | address_space_init_once(&shadow->frozen_btnodes); |
466 | nilfs_mapping_init(&shadow->frozen_btnodes, inode, bdi); | 464 | nilfs_mapping_init(&shadow->frozen_btnodes, inode); |
467 | mi->mi_shadow = shadow; | 465 | mi->mi_shadow = shadow; |
468 | return 0; | 466 | return 0; |
469 | } | 467 | } |
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c index da276640f776..700ecbcca55d 100644 --- a/fs/nilfs2/page.c +++ b/fs/nilfs2/page.c | |||
@@ -461,14 +461,12 @@ unsigned nilfs_page_count_clean_buffers(struct page *page, | |||
461 | return nc; | 461 | return nc; |
462 | } | 462 | } |
463 | 463 | ||
464 | void nilfs_mapping_init(struct address_space *mapping, struct inode *inode, | 464 | void nilfs_mapping_init(struct address_space *mapping, struct inode *inode) |
465 | struct backing_dev_info *bdi) | ||
466 | { | 465 | { |
467 | mapping->host = inode; | 466 | mapping->host = inode; |
468 | mapping->flags = 0; | 467 | mapping->flags = 0; |
469 | mapping_set_gfp_mask(mapping, GFP_NOFS); | 468 | mapping_set_gfp_mask(mapping, GFP_NOFS); |
470 | mapping->private_data = NULL; | 469 | mapping->private_data = NULL; |
471 | mapping->backing_dev_info = bdi; | ||
472 | mapping->a_ops = &empty_aops; | 470 | mapping->a_ops = &empty_aops; |
473 | } | 471 | } |
474 | 472 | ||
diff --git a/fs/nilfs2/page.h b/fs/nilfs2/page.h index ef30c5c2426f..a43b8287d012 100644 --- a/fs/nilfs2/page.h +++ b/fs/nilfs2/page.h | |||
@@ -57,8 +57,7 @@ int nilfs_copy_dirty_pages(struct address_space *, struct address_space *); | |||
57 | void nilfs_copy_back_pages(struct address_space *, struct address_space *); | 57 | void nilfs_copy_back_pages(struct address_space *, struct address_space *); |
58 | void nilfs_clear_dirty_page(struct page *, bool); | 58 | void nilfs_clear_dirty_page(struct page *, bool); |
59 | void nilfs_clear_dirty_pages(struct address_space *, bool); | 59 | void nilfs_clear_dirty_pages(struct address_space *, bool); |
60 | void nilfs_mapping_init(struct address_space *mapping, struct inode *inode, | 60 | void nilfs_mapping_init(struct address_space *mapping, struct inode *inode); |
61 | struct backing_dev_info *bdi); | ||
62 | unsigned nilfs_page_count_clean_buffers(struct page *, unsigned, unsigned); | 61 | unsigned nilfs_page_count_clean_buffers(struct page *, unsigned, unsigned); |
63 | unsigned long nilfs_find_uncommitted_extent(struct inode *inode, | 62 | unsigned long nilfs_find_uncommitted_extent(struct inode *inode, |
64 | sector_t start_blk, | 63 | sector_t start_blk, |
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c index 3d4bbac36bea..5bc2a1cf73c3 100644 --- a/fs/nilfs2/super.c +++ b/fs/nilfs2/super.c | |||
@@ -166,7 +166,7 @@ struct inode *nilfs_alloc_inode(struct super_block *sb) | |||
166 | ii->i_state = 0; | 166 | ii->i_state = 0; |
167 | ii->i_cno = 0; | 167 | ii->i_cno = 0; |
168 | ii->vfs_inode.i_version = 1; | 168 | ii->vfs_inode.i_version = 1; |
169 | nilfs_mapping_init(&ii->i_btnode_cache, &ii->vfs_inode, sb->s_bdi); | 169 | nilfs_mapping_init(&ii->i_btnode_cache, &ii->vfs_inode); |
170 | return &ii->vfs_inode; | 170 | return &ii->vfs_inode; |
171 | } | 171 | } |
172 | 172 | ||
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index 6000d3029b26..061ba6a91bf2 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c | |||
@@ -398,7 +398,6 @@ static struct inode *dlmfs_get_root_inode(struct super_block *sb) | |||
398 | if (inode) { | 398 | if (inode) { |
399 | inode->i_ino = get_next_ino(); | 399 | inode->i_ino = get_next_ino(); |
400 | inode_init_owner(inode, NULL, mode); | 400 | inode_init_owner(inode, NULL, mode); |
401 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
402 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 401 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
403 | inc_nlink(inode); | 402 | inc_nlink(inode); |
404 | 403 | ||
@@ -422,7 +421,6 @@ static struct inode *dlmfs_get_inode(struct inode *parent, | |||
422 | 421 | ||
423 | inode->i_ino = get_next_ino(); | 422 | inode->i_ino = get_next_ino(); |
424 | inode_init_owner(inode, parent, mode); | 423 | inode_init_owner(inode, parent, mode); |
425 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
426 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 424 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
427 | 425 | ||
428 | ip = DLMFS_I(inode); | 426 | ip = DLMFS_I(inode); |
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c index ad4d712002f4..889d558b4e05 100644 --- a/fs/ramfs/inode.c +++ b/fs/ramfs/inode.c | |||
@@ -59,7 +59,6 @@ struct inode *ramfs_get_inode(struct super_block *sb, | |||
59 | inode->i_ino = get_next_ino(); | 59 | inode->i_ino = get_next_ino(); |
60 | inode_init_owner(inode, dir, mode); | 60 | inode_init_owner(inode, dir, mode); |
61 | inode->i_mapping->a_ops = &ramfs_aops; | 61 | inode->i_mapping->a_ops = &ramfs_aops; |
62 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
63 | mapping_set_gfp_mask(inode->i_mapping, GFP_HIGHUSER); | 62 | mapping_set_gfp_mask(inode->i_mapping, GFP_HIGHUSER); |
64 | mapping_set_unevictable(inode->i_mapping); | 63 | mapping_set_unevictable(inode->i_mapping); |
65 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 64 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
diff --git a/fs/romfs/super.c b/fs/romfs/super.c index e98dd88197d5..268733cda397 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c | |||
@@ -355,9 +355,6 @@ static struct inode *romfs_iget(struct super_block *sb, unsigned long pos) | |||
355 | case ROMFH_REG: | 355 | case ROMFH_REG: |
356 | i->i_fop = &romfs_ro_fops; | 356 | i->i_fop = &romfs_ro_fops; |
357 | i->i_data.a_ops = &romfs_aops; | 357 | i->i_data.a_ops = &romfs_aops; |
358 | if (i->i_sb->s_mtd) | ||
359 | i->i_data.backing_dev_info = | ||
360 | i->i_sb->s_mtd->backing_dev_info; | ||
361 | if (nextfh & ROMFH_EXEC) | 358 | if (nextfh & ROMFH_EXEC) |
362 | mode |= S_IXUGO; | 359 | mode |= S_IXUGO; |
363 | break; | 360 | break; |
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index ea41649e4ca5..c49b1981ac95 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c | |||
@@ -108,8 +108,6 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir, | |||
108 | inode->i_mtime = inode->i_atime = inode->i_ctime = | 108 | inode->i_mtime = inode->i_atime = inode->i_ctime = |
109 | ubifs_current_time(inode); | 109 | ubifs_current_time(inode); |
110 | inode->i_mapping->nrpages = 0; | 110 | inode->i_mapping->nrpages = 0; |
111 | /* Disable readahead */ | ||
112 | inode->i_mapping->backing_dev_info = &c->bdi; | ||
113 | 111 | ||
114 | switch (mode & S_IFMT) { | 112 | switch (mode & S_IFMT) { |
115 | case S_IFREG: | 113 | case S_IFREG: |
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index ed93dc6ae245..6197154f36ca 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c | |||
@@ -156,9 +156,6 @@ struct inode *ubifs_iget(struct super_block *sb, unsigned long inum) | |||
156 | if (err) | 156 | if (err) |
157 | goto out_invalid; | 157 | goto out_invalid; |
158 | 158 | ||
159 | /* Disable read-ahead */ | ||
160 | inode->i_mapping->backing_dev_info = &c->bdi; | ||
161 | |||
162 | switch (inode->i_mode & S_IFMT) { | 159 | switch (inode->i_mode & S_IFMT) { |
163 | case S_IFREG: | 160 | case S_IFREG: |
164 | inode->i_mapping->a_ops = &ubifs_file_address_operations; | 161 | inode->i_mapping->a_ops = &ubifs_file_address_operations; |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 1dada399aa23..65d02de342e1 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <asm/byteorder.h> | 34 | #include <asm/byteorder.h> |
35 | #include <uapi/linux/fs.h> | 35 | #include <uapi/linux/fs.h> |
36 | 36 | ||
37 | struct backing_dev_info; | ||
37 | struct export_operations; | 38 | struct export_operations; |
38 | struct hd_geometry; | 39 | struct hd_geometry; |
39 | struct iovec; | 40 | struct iovec; |
@@ -394,7 +395,6 @@ int pagecache_write_end(struct file *, struct address_space *mapping, | |||
394 | loff_t pos, unsigned len, unsigned copied, | 395 | loff_t pos, unsigned len, unsigned copied, |
395 | struct page *page, void *fsdata); | 396 | struct page *page, void *fsdata); |
396 | 397 | ||
397 | struct backing_dev_info; | ||
398 | struct address_space { | 398 | struct address_space { |
399 | struct inode *host; /* owner: inode, block_device */ | 399 | struct inode *host; /* owner: inode, block_device */ |
400 | struct radix_tree_root page_tree; /* radix tree of all pages */ | 400 | struct radix_tree_root page_tree; /* radix tree of all pages */ |
@@ -409,7 +409,6 @@ struct address_space { | |||
409 | pgoff_t writeback_index;/* writeback starts here */ | 409 | pgoff_t writeback_index;/* writeback starts here */ |
410 | const struct address_space_operations *a_ops; /* methods */ | 410 | const struct address_space_operations *a_ops; /* methods */ |
411 | unsigned long flags; /* error bits/gfp mask */ | 411 | unsigned long flags; /* error bits/gfp mask */ |
412 | struct backing_dev_info *backing_dev_info; /* device readahead, etc */ | ||
413 | spinlock_t private_lock; /* for use by the address_space */ | 412 | spinlock_t private_lock; /* for use by the address_space */ |
414 | struct list_head private_list; /* ditto */ | 413 | struct list_head private_list; /* ditto */ |
415 | void *private_data; /* ditto */ | 414 | void *private_data; /* ditto */ |
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 16c68958aeda..52e0c7652448 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
@@ -24,7 +24,6 @@ struct backing_dev_info noop_backing_dev_info = { | |||
24 | .name = "noop", | 24 | .name = "noop", |
25 | .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK, | 25 | .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK, |
26 | }; | 26 | }; |
27 | EXPORT_SYMBOL_GPL(noop_backing_dev_info); | ||
28 | 27 | ||
29 | static struct class *bdi_class; | 28 | static struct class *bdi_class; |
30 | 29 | ||
diff --git a/mm/shmem.c b/mm/shmem.c index 1b77eaf589fd..4c61d3d5bfb4 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -1410,7 +1410,6 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode | |||
1410 | inode->i_ino = get_next_ino(); | 1410 | inode->i_ino = get_next_ino(); |
1411 | inode_init_owner(inode, dir, mode); | 1411 | inode_init_owner(inode, dir, mode); |
1412 | inode->i_blocks = 0; | 1412 | inode->i_blocks = 0; |
1413 | inode->i_mapping->backing_dev_info = &noop_backing_dev_info; | ||
1414 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 1413 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
1415 | inode->i_generation = get_seconds(); | 1414 | inode->i_generation = get_seconds(); |
1416 | info = SHMEM_I(inode); | 1415 | info = SHMEM_I(inode); |
diff --git a/mm/swap_state.c b/mm/swap_state.c index 1c137b69ecde..405923f77334 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c | |||
@@ -37,7 +37,6 @@ struct address_space swapper_spaces[MAX_SWAPFILES] = { | |||
37 | .page_tree = RADIX_TREE_INIT(GFP_ATOMIC|__GFP_NOWARN), | 37 | .page_tree = RADIX_TREE_INIT(GFP_ATOMIC|__GFP_NOWARN), |
38 | .i_mmap_writable = ATOMIC_INIT(0), | 38 | .i_mmap_writable = ATOMIC_INIT(0), |
39 | .a_ops = &swap_aops, | 39 | .a_ops = &swap_aops, |
40 | .backing_dev_info = &noop_backing_dev_info, | ||
41 | } | 40 | } |
42 | }; | 41 | }; |
43 | 42 | ||