diff options
Diffstat (limited to 'ipc/mqueue.c')
| -rw-r--r-- | ipc/mqueue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index c60e519e2917..3a61ffefe884 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(); |
| @@ -769,7 +770,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name) | |||
| 769 | 770 | ||
| 770 | inode = dentry->d_inode; | 771 | inode = dentry->d_inode; |
| 771 | if (inode) | 772 | if (inode) |
| 772 | atomic_inc(&inode->i_count); | 773 | ihold(inode); |
| 773 | err = mnt_want_write(ipc_ns->mq_mnt); | 774 | err = mnt_want_write(ipc_ns->mq_mnt); |
| 774 | if (err) | 775 | if (err) |
| 775 | goto out_err; | 776 | goto out_err; |
| @@ -1219,6 +1220,7 @@ static const struct file_operations mqueue_file_operations = { | |||
| 1219 | .flush = mqueue_flush_file, | 1220 | .flush = mqueue_flush_file, |
| 1220 | .poll = mqueue_poll_file, | 1221 | .poll = mqueue_poll_file, |
| 1221 | .read = mqueue_read_file, | 1222 | .read = mqueue_read_file, |
| 1223 | .llseek = default_llseek, | ||
| 1222 | }; | 1224 | }; |
| 1223 | 1225 | ||
| 1224 | static const struct super_operations mqueue_super_ops = { | 1226 | static const struct super_operations mqueue_super_ops = { |
