aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/mqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r--ipc/mqueue.c4
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
1224static const struct super_operations mqueue_super_ops = { 1226static const struct super_operations mqueue_super_ops = {