diff options
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_fs.c | 1 | ||||
-rw-r--r-- | drivers/infiniband/hw/qib/qib_fs.c | 1 | ||||
-rw-r--r-- | drivers/misc/ibmasm/ibmasmfs.c | 1 | ||||
-rw-r--r-- | drivers/oprofile/oprofilefs.c | 1 | ||||
-rw-r--r-- | drivers/usb/core/inode.c | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/f_fs.c | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/inode.c | 1 | ||||
-rw-r--r-- | fs/anon_inodes.c | 1 | ||||
-rw-r--r-- | fs/autofs4/inode.c | 1 | ||||
-rw-r--r-- | fs/binfmt_misc.c | 1 | ||||
-rw-r--r-- | fs/configfs/inode.c | 1 | ||||
-rw-r--r-- | fs/debugfs/inode.c | 1 | ||||
-rw-r--r-- | fs/ext4/mballoc.c | 1 | ||||
-rw-r--r-- | fs/freevxfs/vxfs_inode.c | 1 | ||||
-rw-r--r-- | fs/fuse/control.c | 1 | ||||
-rw-r--r-- | fs/hugetlbfs/inode.c | 1 | ||||
-rw-r--r-- | fs/inode.c | 4 | ||||
-rw-r--r-- | fs/ocfs2/dlmfs/dlmfs.c | 2 | ||||
-rw-r--r-- | fs/pipe.c | 2 | ||||
-rw-r--r-- | fs/proc/base.c | 2 | ||||
-rw-r--r-- | fs/proc/proc_sysctl.c | 2 | ||||
-rw-r--r-- | fs/ramfs/inode.c | 1 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 1 | ||||
-rw-r--r-- | include/linux/fs.h | 1 | ||||
-rw-r--r-- | ipc/mqueue.c | 1 | ||||
-rw-r--r-- | kernel/cgroup.c | 1 | ||||
-rw-r--r-- | mm/shmem.c | 1 | ||||
-rw-r--r-- | net/socket.c | 1 | ||||
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 1 | ||||
-rw-r--r-- | security/inode.c | 1 | ||||
-rw-r--r-- | security/selinux/selinuxfs.c | 1 |
31 files changed, 36 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c index d13e72685dc..12d5bf76302 100644 --- a/drivers/infiniband/hw/ipath/ipath_fs.c +++ b/drivers/infiniband/hw/ipath/ipath_fs.c | |||
@@ -57,6 +57,7 @@ static int ipathfs_mknod(struct inode *dir, struct dentry *dentry, | |||
57 | goto bail; | 57 | goto bail; |
58 | } | 58 | } |
59 | 59 | ||
60 | inode->i_ino = get_next_ino(); | ||
60 | inode->i_mode = mode; | 61 | inode->i_mode = mode; |
61 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 62 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
62 | inode->i_private = data; | 63 | inode->i_private = data; |
diff --git a/drivers/infiniband/hw/qib/qib_fs.c b/drivers/infiniband/hw/qib/qib_fs.c index a0e6613e8be..7e433d75c77 100644 --- a/drivers/infiniband/hw/qib/qib_fs.c +++ b/drivers/infiniband/hw/qib/qib_fs.c | |||
@@ -58,6 +58,7 @@ static int qibfs_mknod(struct inode *dir, struct dentry *dentry, | |||
58 | goto bail; | 58 | goto bail; |
59 | } | 59 | } |
60 | 60 | ||
61 | inode->i_ino = get_next_ino(); | ||
61 | inode->i_mode = mode; | 62 | inode->i_mode = mode; |
62 | inode->i_uid = 0; | 63 | inode->i_uid = 0; |
63 | inode->i_gid = 0; | 64 | inode->i_gid = 0; |
diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index af2497ae5fe..0a53500636c 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c | |||
@@ -146,6 +146,7 @@ static struct inode *ibmasmfs_make_inode(struct super_block *sb, int mode) | |||
146 | struct inode *ret = new_inode(sb); | 146 | struct inode *ret = new_inode(sb); |
147 | 147 | ||
148 | if (ret) { | 148 | if (ret) { |
149 | ret->i_ino = get_next_ino(); | ||
149 | ret->i_mode = mode; | 150 | ret->i_mode = mode; |
150 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; | 151 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; |
151 | } | 152 | } |
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index 95f711b251a..449de59bf35 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c | |||
@@ -28,6 +28,7 @@ static struct inode *oprofilefs_get_inode(struct super_block *sb, int mode) | |||
28 | struct inode *inode = new_inode(sb); | 28 | struct inode *inode = new_inode(sb); |
29 | 29 | ||
30 | if (inode) { | 30 | if (inode) { |
31 | inode->i_ino = get_next_ino(); | ||
31 | inode->i_mode = mode; | 32 | inode->i_mode = mode; |
32 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 33 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
33 | } | 34 | } |
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c index 095fa536669..e2f63c0ea09 100644 --- a/drivers/usb/core/inode.c +++ b/drivers/usb/core/inode.c | |||
@@ -276,6 +276,7 @@ static struct inode *usbfs_get_inode (struct super_block *sb, int mode, dev_t de | |||
276 | struct inode *inode = new_inode(sb); | 276 | struct inode *inode = new_inode(sb); |
277 | 277 | ||
278 | if (inode) { | 278 | if (inode) { |
279 | inode->i_ino = get_next_ino(); | ||
279 | inode->i_mode = mode; | 280 | inode->i_mode = mode; |
280 | inode->i_uid = current_fsuid(); | 281 | inode->i_uid = current_fsuid(); |
281 | inode->i_gid = current_fsgid(); | 282 | inode->i_gid = current_fsgid(); |
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c index e4f59505520..e093fd8d04d 100644 --- a/drivers/usb/gadget/f_fs.c +++ b/drivers/usb/gadget/f_fs.c | |||
@@ -980,6 +980,7 @@ ffs_sb_make_inode(struct super_block *sb, void *data, | |||
980 | if (likely(inode)) { | 980 | if (likely(inode)) { |
981 | struct timespec current_time = CURRENT_TIME; | 981 | struct timespec current_time = CURRENT_TIME; |
982 | 982 | ||
983 | inode->i_ino = usbfs_get_inode(); | ||
983 | inode->i_mode = perms->mode; | 984 | inode->i_mode = perms->mode; |
984 | inode->i_uid = perms->uid; | 985 | inode->i_uid = perms->uid; |
985 | inode->i_gid = perms->gid; | 986 | inode->i_gid = perms->gid; |
diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c index d1d72d946b0..ba145e7fbe0 100644 --- a/drivers/usb/gadget/inode.c +++ b/drivers/usb/gadget/inode.c | |||
@@ -1991,6 +1991,7 @@ gadgetfs_make_inode (struct super_block *sb, | |||
1991 | struct inode *inode = new_inode (sb); | 1991 | struct inode *inode = new_inode (sb); |
1992 | 1992 | ||
1993 | if (inode) { | 1993 | if (inode) { |
1994 | inode->i_ino = get_next_ino(); | ||
1994 | inode->i_mode = mode; | 1995 | inode->i_mode = mode; |
1995 | inode->i_uid = default_uid; | 1996 | inode->i_uid = default_uid; |
1996 | inode->i_gid = default_gid; | 1997 | inode->i_gid = default_gid; |
diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c index 9c8e87b0361..5365527ca43 100644 --- a/fs/anon_inodes.c +++ b/fs/anon_inodes.c | |||
@@ -193,6 +193,7 @@ static struct inode *anon_inode_mkinode(void) | |||
193 | if (!inode) | 193 | if (!inode) |
194 | return ERR_PTR(-ENOMEM); | 194 | return ERR_PTR(-ENOMEM); |
195 | 195 | ||
196 | inode->i_ino = get_next_ino(); | ||
196 | inode->i_fop = &anon_inode_fops; | 197 | inode->i_fop = &anon_inode_fops; |
197 | 198 | ||
198 | inode->i_mapping->a_ops = &anon_aops; | 199 | inode->i_mapping->a_ops = &anon_aops; |
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c index 821b2b955da..ac87e49fa70 100644 --- a/fs/autofs4/inode.c +++ b/fs/autofs4/inode.c | |||
@@ -398,6 +398,7 @@ struct inode *autofs4_get_inode(struct super_block *sb, | |||
398 | inode->i_gid = sb->s_root->d_inode->i_gid; | 398 | inode->i_gid = sb->s_root->d_inode->i_gid; |
399 | } | 399 | } |
400 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 400 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
401 | inode->i_ino = get_next_ino(); | ||
401 | 402 | ||
402 | if (S_ISDIR(inf->mode)) { | 403 | if (S_ISDIR(inf->mode)) { |
403 | inode->i_nlink = 2; | 404 | inode->i_nlink = 2; |
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c index 139fc8083f5..29990f0eee0 100644 --- a/fs/binfmt_misc.c +++ b/fs/binfmt_misc.c | |||
@@ -495,6 +495,7 @@ static struct inode *bm_get_inode(struct super_block *sb, int mode) | |||
495 | struct inode * inode = new_inode(sb); | 495 | struct inode * inode = new_inode(sb); |
496 | 496 | ||
497 | if (inode) { | 497 | if (inode) { |
498 | inode->i_ino = get_next_ino(); | ||
498 | inode->i_mode = mode; | 499 | inode->i_mode = mode; |
499 | inode->i_atime = inode->i_mtime = inode->i_ctime = | 500 | inode->i_atime = inode->i_mtime = inode->i_ctime = |
500 | current_fs_time(inode->i_sb); | 501 | current_fs_time(inode->i_sb); |
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c index cf78d44a8d6..253476d78ed 100644 --- a/fs/configfs/inode.c +++ b/fs/configfs/inode.c | |||
@@ -135,6 +135,7 @@ struct inode * configfs_new_inode(mode_t mode, struct configfs_dirent * sd) | |||
135 | { | 135 | { |
136 | struct inode * inode = new_inode(configfs_sb); | 136 | struct inode * inode = new_inode(configfs_sb); |
137 | if (inode) { | 137 | if (inode) { |
138 | inode->i_ino = get_next_ino(); | ||
138 | inode->i_mapping->a_ops = &configfs_aops; | 139 | inode->i_mapping->a_ops = &configfs_aops; |
139 | inode->i_mapping->backing_dev_info = &configfs_backing_dev_info; | 140 | inode->i_mapping->backing_dev_info = &configfs_backing_dev_info; |
140 | inode->i_op = &configfs_inode_operations; | 141 | inode->i_op = &configfs_inode_operations; |
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 30a87b3dbca..a4ed8380e98 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -40,6 +40,7 @@ static struct inode *debugfs_get_inode(struct super_block *sb, int mode, dev_t d | |||
40 | struct inode *inode = new_inode(sb); | 40 | struct inode *inode = new_inode(sb); |
41 | 41 | ||
42 | if (inode) { | 42 | if (inode) { |
43 | inode->i_ino = get_next_ino(); | ||
43 | inode->i_mode = mode; | 44 | inode->i_mode = mode; |
44 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 45 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
45 | switch (mode & S_IFMT) { | 46 | switch (mode & S_IFMT) { |
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 19aa0d44d82..42f77b1dc72 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -2373,6 +2373,7 @@ static int ext4_mb_init_backend(struct super_block *sb) | |||
2373 | printk(KERN_ERR "EXT4-fs: can't get new inode\n"); | 2373 | printk(KERN_ERR "EXT4-fs: can't get new inode\n"); |
2374 | goto err_freesgi; | 2374 | goto err_freesgi; |
2375 | } | 2375 | } |
2376 | sbi->s_buddy_cache->i_ino = get_next_ino(); | ||
2376 | EXT4_I(sbi->s_buddy_cache)->i_disksize = 0; | 2377 | EXT4_I(sbi->s_buddy_cache)->i_disksize = 0; |
2377 | for (i = 0; i < ngroups; i++) { | 2378 | for (i = 0; i < ngroups; i++) { |
2378 | desc = ext4_get_group_desc(sb, i, NULL); | 2379 | desc = ext4_get_group_desc(sb, i, NULL); |
diff --git a/fs/freevxfs/vxfs_inode.c b/fs/freevxfs/vxfs_inode.c index 79d1b4ea13e..8c04eac5079 100644 --- a/fs/freevxfs/vxfs_inode.c +++ b/fs/freevxfs/vxfs_inode.c | |||
@@ -260,6 +260,7 @@ vxfs_get_fake_inode(struct super_block *sbp, struct vxfs_inode_info *vip) | |||
260 | struct inode *ip = NULL; | 260 | struct inode *ip = NULL; |
261 | 261 | ||
262 | if ((ip = new_inode(sbp))) { | 262 | if ((ip = new_inode(sbp))) { |
263 | ip->i_ino = get_next_ino(); | ||
263 | vxfs_iinit(ip, vip); | 264 | vxfs_iinit(ip, vip); |
264 | ip->i_mapping->a_ops = &vxfs_aops; | 265 | ip->i_mapping->a_ops = &vxfs_aops; |
265 | } | 266 | } |
diff --git a/fs/fuse/control.c b/fs/fuse/control.c index 7367e177186..4eba07661e5 100644 --- a/fs/fuse/control.c +++ b/fs/fuse/control.c | |||
@@ -222,6 +222,7 @@ static struct dentry *fuse_ctl_add_dentry(struct dentry *parent, | |||
222 | if (!inode) | 222 | if (!inode) |
223 | return NULL; | 223 | return NULL; |
224 | 224 | ||
225 | inode->i_ino = get_next_ino(); | ||
225 | inode->i_mode = mode; | 226 | inode->i_mode = mode; |
226 | inode->i_uid = fc->user_id; | 227 | inode->i_uid = fc->user_id; |
227 | inode->i_gid = fc->group_id; | 228 | inode->i_gid = fc->group_id; |
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 113eba3d3c3..8d0607b3726 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c | |||
@@ -455,6 +455,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb, uid_t uid, | |||
455 | inode = new_inode(sb); | 455 | inode = new_inode(sb); |
456 | if (inode) { | 456 | if (inode) { |
457 | struct hugetlbfs_inode_info *info; | 457 | struct hugetlbfs_inode_info *info; |
458 | inode->i_ino = get_next_ino(); | ||
458 | inode->i_mode = mode; | 459 | inode->i_mode = mode; |
459 | inode->i_uid = uid; | 460 | inode->i_uid = uid; |
460 | inode->i_gid = gid; | 461 | inode->i_gid = gid; |
diff --git a/fs/inode.c b/fs/inode.c index 46a3e120b19..2cd2e48f7a2 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -735,7 +735,7 @@ repeat: | |||
735 | #define LAST_INO_BATCH 1024 | 735 | #define LAST_INO_BATCH 1024 |
736 | static DEFINE_PER_CPU(unsigned int, last_ino); | 736 | static DEFINE_PER_CPU(unsigned int, last_ino); |
737 | 737 | ||
738 | static unsigned int get_next_ino(void) | 738 | unsigned int get_next_ino(void) |
739 | { | 739 | { |
740 | unsigned int *p = &get_cpu_var(last_ino); | 740 | unsigned int *p = &get_cpu_var(last_ino); |
741 | unsigned int res = *p; | 741 | unsigned int res = *p; |
@@ -753,6 +753,7 @@ static unsigned int get_next_ino(void) | |||
753 | put_cpu_var(last_ino); | 753 | put_cpu_var(last_ino); |
754 | return res; | 754 | return res; |
755 | } | 755 | } |
756 | EXPORT_SYMBOL(get_next_ino); | ||
756 | 757 | ||
757 | /** | 758 | /** |
758 | * new_inode - obtain an inode | 759 | * new_inode - obtain an inode |
@@ -776,7 +777,6 @@ struct inode *new_inode(struct super_block *sb) | |||
776 | if (inode) { | 777 | if (inode) { |
777 | spin_lock(&inode_lock); | 778 | spin_lock(&inode_lock); |
778 | __inode_sb_list_add(inode); | 779 | __inode_sb_list_add(inode); |
779 | inode->i_ino = get_next_ino(); | ||
780 | inode->i_state = 0; | 780 | inode->i_state = 0; |
781 | spin_unlock(&inode_lock); | 781 | spin_unlock(&inode_lock); |
782 | } | 782 | } |
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index a7ebd9d42dc..75e115f1bd7 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c | |||
@@ -400,6 +400,7 @@ static struct inode *dlmfs_get_root_inode(struct super_block *sb) | |||
400 | if (inode) { | 400 | if (inode) { |
401 | ip = DLMFS_I(inode); | 401 | ip = DLMFS_I(inode); |
402 | 402 | ||
403 | inode->i_ino = get_next_ino(); | ||
403 | inode->i_mode = mode; | 404 | inode->i_mode = mode; |
404 | inode->i_uid = current_fsuid(); | 405 | inode->i_uid = current_fsuid(); |
405 | inode->i_gid = current_fsgid(); | 406 | inode->i_gid = current_fsgid(); |
@@ -425,6 +426,7 @@ static struct inode *dlmfs_get_inode(struct inode *parent, | |||
425 | if (!inode) | 426 | if (!inode) |
426 | return NULL; | 427 | return NULL; |
427 | 428 | ||
429 | inode->i_ino = get_next_ino(); | ||
428 | inode->i_mode = mode; | 430 | inode->i_mode = mode; |
429 | inode->i_uid = current_fsuid(); | 431 | inode->i_uid = current_fsuid(); |
430 | inode->i_gid = current_fsgid(); | 432 | inode->i_gid = current_fsgid(); |
@@ -954,6 +954,8 @@ static struct inode * get_pipe_inode(void) | |||
954 | if (!inode) | 954 | if (!inode) |
955 | goto fail_inode; | 955 | goto fail_inode; |
956 | 956 | ||
957 | inode->i_ino = get_next_ino(); | ||
958 | |||
957 | pipe = alloc_pipe_info(inode); | 959 | pipe = alloc_pipe_info(inode); |
958 | if (!pipe) | 960 | if (!pipe) |
959 | goto fail_iput; | 961 | goto fail_iput; |
diff --git a/fs/proc/base.c b/fs/proc/base.c index fb2a5abd4e4..9883f1e1833 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -1603,6 +1603,7 @@ static struct inode *proc_pid_make_inode(struct super_block * sb, struct task_st | |||
1603 | 1603 | ||
1604 | /* Common stuff */ | 1604 | /* Common stuff */ |
1605 | ei = PROC_I(inode); | 1605 | ei = PROC_I(inode); |
1606 | inode->i_ino = get_next_ino(); | ||
1606 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; | 1607 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
1607 | inode->i_op = &proc_def_inode_operations; | 1608 | inode->i_op = &proc_def_inode_operations; |
1608 | 1609 | ||
@@ -2549,6 +2550,7 @@ static struct dentry *proc_base_instantiate(struct inode *dir, | |||
2549 | 2550 | ||
2550 | /* Initialize the inode */ | 2551 | /* Initialize the inode */ |
2551 | ei = PROC_I(inode); | 2552 | ei = PROC_I(inode); |
2553 | inode->i_ino = get_next_ino(); | ||
2552 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; | 2554 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
2553 | 2555 | ||
2554 | /* | 2556 | /* |
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 2fc52552271..b652cb00906 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c | |||
@@ -23,6 +23,8 @@ static struct inode *proc_sys_make_inode(struct super_block *sb, | |||
23 | if (!inode) | 23 | if (!inode) |
24 | goto out; | 24 | goto out; |
25 | 25 | ||
26 | inode->i_ino = get_next_ino(); | ||
27 | |||
26 | sysctl_head_get(head); | 28 | sysctl_head_get(head); |
27 | ei = PROC_I(inode); | 29 | ei = PROC_I(inode); |
28 | ei->sysctl = head; | 30 | ei->sysctl = head; |
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c index a5ebae70dc6..67fadb1ad2c 100644 --- a/fs/ramfs/inode.c +++ b/fs/ramfs/inode.c | |||
@@ -58,6 +58,7 @@ struct inode *ramfs_get_inode(struct super_block *sb, | |||
58 | struct inode * inode = new_inode(sb); | 58 | struct inode * inode = new_inode(sb); |
59 | 59 | ||
60 | if (inode) { | 60 | if (inode) { |
61 | inode->i_ino = get_next_ino(); | ||
61 | inode_init_owner(inode, dir, mode); | 62 | inode_init_owner(inode, dir, mode); |
62 | inode->i_mapping->a_ops = &ramfs_aops; | 63 | inode->i_mapping->a_ops = &ramfs_aops; |
63 | inode->i_mapping->backing_dev_info = &ramfs_backing_dev_info; | 64 | inode->i_mapping->backing_dev_info = &ramfs_backing_dev_info; |
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index ba5312802aa..63fd2c07cb5 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -1580,6 +1580,7 @@ xfs_mapping_buftarg( | |||
1580 | XFS_BUFTARG_NAME(btp)); | 1580 | XFS_BUFTARG_NAME(btp)); |
1581 | return ENOMEM; | 1581 | return ENOMEM; |
1582 | } | 1582 | } |
1583 | inode->i_ino = get_next_ino(); | ||
1583 | inode->i_mode = S_IFBLK; | 1584 | inode->i_mode = S_IFBLK; |
1584 | inode->i_bdev = bdev; | 1585 | inode->i_bdev = bdev; |
1585 | inode->i_rdev = bdev->bd_dev; | 1586 | inode->i_rdev = bdev->bd_dev; |
diff --git a/include/linux/fs.h b/include/linux/fs.h index bd6ae6c71fc..4a573cf13f5 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2191,6 +2191,7 @@ extern struct inode * iget_locked(struct super_block *, unsigned long); | |||
2191 | extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); | 2191 | extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *); |
2192 | extern int insert_inode_locked(struct inode *); | 2192 | extern int insert_inode_locked(struct inode *); |
2193 | extern void unlock_new_inode(struct inode *); | 2193 | extern void unlock_new_inode(struct inode *); |
2194 | extern unsigned int get_next_ino(void); | ||
2194 | 2195 | ||
2195 | extern void __iget(struct inode * inode); | 2196 | extern void __iget(struct inode * inode); |
2196 | extern void iget_failed(struct inode *); | 2197 | extern void iget_failed(struct inode *); |
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 80b35ffca25..3a61ffefe88 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -116,6 +116,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb, | |||
116 | 116 | ||
117 | inode = new_inode(sb); | 117 | inode = new_inode(sb); |
118 | if (inode) { | 118 | if (inode) { |
119 | inode->i_ino = get_next_ino(); | ||
119 | inode->i_mode = mode; | 120 | inode->i_mode = mode; |
120 | inode->i_uid = current_fsuid(); | 121 | inode->i_uid = current_fsuid(); |
121 | inode->i_gid = current_fsgid(); | 122 | inode->i_gid = current_fsgid(); |
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 7b69b8d0313..9270d532ec3 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -777,6 +777,7 @@ static struct inode *cgroup_new_inode(mode_t mode, struct super_block *sb) | |||
777 | struct inode *inode = new_inode(sb); | 777 | struct inode *inode = new_inode(sb); |
778 | 778 | ||
779 | if (inode) { | 779 | if (inode) { |
780 | inode->i_ino = get_next_ino(); | ||
780 | inode->i_mode = mode; | 781 | inode->i_mode = mode; |
781 | inode->i_uid = current_fsuid(); | 782 | inode->i_uid = current_fsuid(); |
782 | inode->i_gid = current_fsgid(); | 783 | inode->i_gid = current_fsgid(); |
diff --git a/mm/shmem.c b/mm/shmem.c index d4e2852526e..f6d350e8adc 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; |
diff --git a/net/socket.c b/net/socket.c index d223725f99e..5cac1c70775 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -480,6 +480,7 @@ static struct socket *sock_alloc(void) | |||
480 | sock = SOCKET_I(inode); | 480 | sock = SOCKET_I(inode); |
481 | 481 | ||
482 | kmemcheck_annotate_bitfield(sock, type); | 482 | kmemcheck_annotate_bitfield(sock, type); |
483 | inode->i_ino = get_next_ino(); | ||
483 | inode->i_mode = S_IFSOCK | S_IRWXUGO; | 484 | inode->i_mode = S_IFSOCK | S_IRWXUGO; |
484 | inode->i_uid = current_fsuid(); | 485 | inode->i_uid = current_fsuid(); |
485 | inode->i_gid = current_fsgid(); | 486 | inode->i_gid = current_fsgid(); |
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 52f25243214..7df92d237cb 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -445,6 +445,7 @@ rpc_get_inode(struct super_block *sb, umode_t mode) | |||
445 | struct inode *inode = new_inode(sb); | 445 | struct inode *inode = new_inode(sb); |
446 | if (!inode) | 446 | if (!inode) |
447 | return NULL; | 447 | return NULL; |
448 | inode->i_ino = get_next_ino(); | ||
448 | inode->i_mode = mode; | 449 | inode->i_mode = mode; |
449 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 450 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
450 | switch(mode & S_IFMT) { | 451 | switch(mode & S_IFMT) { |
diff --git a/security/inode.c b/security/inode.c index 88839866cbc..cb8f47c66a5 100644 --- a/security/inode.c +++ b/security/inode.c | |||
@@ -61,6 +61,7 @@ static struct inode *get_inode(struct super_block *sb, int mode, dev_t dev) | |||
61 | struct inode *inode = new_inode(sb); | 61 | struct inode *inode = new_inode(sb); |
62 | 62 | ||
63 | if (inode) { | 63 | if (inode) { |
64 | inode->i_ino = get_next_ino(); | ||
64 | inode->i_mode = mode; | 65 | inode->i_mode = mode; |
65 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 66 | inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
66 | switch (mode & S_IFMT) { | 67 | switch (mode & S_IFMT) { |
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index 87e0556bae7..55a755c1a1b 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c | |||
@@ -978,6 +978,7 @@ static struct inode *sel_make_inode(struct super_block *sb, int mode) | |||
978 | struct inode *ret = new_inode(sb); | 978 | struct inode *ret = new_inode(sb); |
979 | 979 | ||
980 | if (ret) { | 980 | if (ret) { |
981 | ret->i_ino = get_next_ino(); | ||
981 | ret->i_mode = mode; | 982 | ret->i_mode = mode; |
982 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; | 983 | ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME; |
983 | } | 984 | } |