diff options
Diffstat (limited to 'mm/shmem.c')
-rw-r--r-- | mm/shmem.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/mm/shmem.c b/mm/shmem.c index 080b09a57a8f..47fdeeb9d636 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -1586,6 +1586,7 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode | |||
1586 | 1586 | ||
1587 | inode = new_inode(sb); | 1587 | inode = new_inode(sb); |
1588 | if (inode) { | 1588 | if (inode) { |
1589 | inode->i_ino = get_next_ino(); | ||
1589 | inode_init_owner(inode, dir, mode); | 1590 | inode_init_owner(inode, dir, mode); |
1590 | inode->i_blocks = 0; | 1591 | inode->i_blocks = 0; |
1591 | inode->i_mapping->backing_dev_info = &shmem_backing_dev_info; | 1592 | inode->i_mapping->backing_dev_info = &shmem_backing_dev_info; |
@@ -1903,7 +1904,7 @@ static int shmem_link(struct dentry *old_dentry, struct inode *dir, struct dentr | |||
1903 | dir->i_size += BOGO_DIRENT_SIZE; | 1904 | dir->i_size += BOGO_DIRENT_SIZE; |
1904 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; | 1905 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; |
1905 | inc_nlink(inode); | 1906 | inc_nlink(inode); |
1906 | atomic_inc(&inode->i_count); /* New dentry reference */ | 1907 | ihold(inode); /* New dentry reference */ |
1907 | dget(dentry); /* Extra pinning count for the created dentry */ | 1908 | dget(dentry); /* Extra pinning count for the created dentry */ |
1908 | d_instantiate(dentry, inode); | 1909 | d_instantiate(dentry, inode); |
1909 | out: | 1910 | out: |
@@ -2146,7 +2147,7 @@ static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len, | |||
2146 | if (*len < 3) | 2147 | if (*len < 3) |
2147 | return 255; | 2148 | return 255; |
2148 | 2149 | ||
2149 | if (hlist_unhashed(&inode->i_hash)) { | 2150 | if (inode_unhashed(inode)) { |
2150 | /* Unfortunately insert_inode_hash is not idempotent, | 2151 | /* Unfortunately insert_inode_hash is not idempotent, |
2151 | * so as we hash inodes here rather than at creation | 2152 | * so as we hash inodes here rather than at creation |
2152 | * time, we need a lock to ensure we only try | 2153 | * time, we need a lock to ensure we only try |
@@ -2154,7 +2155,7 @@ static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len, | |||
2154 | */ | 2155 | */ |
2155 | static DEFINE_SPINLOCK(lock); | 2156 | static DEFINE_SPINLOCK(lock); |
2156 | spin_lock(&lock); | 2157 | spin_lock(&lock); |
2157 | if (hlist_unhashed(&inode->i_hash)) | 2158 | if (inode_unhashed(inode)) |
2158 | __insert_inode_hash(inode, | 2159 | __insert_inode_hash(inode, |
2159 | inode->i_ino + inode->i_generation); | 2160 | inode->i_ino + inode->i_generation); |
2160 | spin_unlock(&lock); | 2161 | spin_unlock(&lock); |
@@ -2537,16 +2538,16 @@ static const struct vm_operations_struct shmem_vm_ops = { | |||
2537 | }; | 2538 | }; |
2538 | 2539 | ||
2539 | 2540 | ||
2540 | static int shmem_get_sb(struct file_system_type *fs_type, | 2541 | static struct dentry *shmem_mount(struct file_system_type *fs_type, |
2541 | int flags, const char *dev_name, void *data, struct vfsmount *mnt) | 2542 | int flags, const char *dev_name, void *data) |
2542 | { | 2543 | { |
2543 | return get_sb_nodev(fs_type, flags, data, shmem_fill_super, mnt); | 2544 | return mount_nodev(fs_type, flags, data, shmem_fill_super); |
2544 | } | 2545 | } |
2545 | 2546 | ||
2546 | static struct file_system_type tmpfs_fs_type = { | 2547 | static struct file_system_type tmpfs_fs_type = { |
2547 | .owner = THIS_MODULE, | 2548 | .owner = THIS_MODULE, |
2548 | .name = "tmpfs", | 2549 | .name = "tmpfs", |
2549 | .get_sb = shmem_get_sb, | 2550 | .mount = shmem_mount, |
2550 | .kill_sb = kill_litter_super, | 2551 | .kill_sb = kill_litter_super, |
2551 | }; | 2552 | }; |
2552 | 2553 | ||
@@ -2642,7 +2643,7 @@ out: | |||
2642 | 2643 | ||
2643 | static struct file_system_type tmpfs_fs_type = { | 2644 | static struct file_system_type tmpfs_fs_type = { |
2644 | .name = "tmpfs", | 2645 | .name = "tmpfs", |
2645 | .get_sb = ramfs_get_sb, | 2646 | .mount = ramfs_mount, |
2646 | .kill_sb = kill_litter_super, | 2647 | .kill_sb = kill_litter_super, |
2647 | }; | 2648 | }; |
2648 | 2649 | ||