diff options
Diffstat (limited to 'ipc/mqueue.c')
| -rw-r--r-- | ipc/mqueue.c | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 2e0ecfcc881..9a142a29074 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -108,7 +108,7 @@ static struct ipc_namespace *get_ns_from_inode(struct inode *inode)  }  static struct inode *mqueue_get_inode(struct super_block *sb, -		struct ipc_namespace *ipc_ns, int mode, +		struct ipc_namespace *ipc_ns, umode_t mode,  		struct mq_attr *attr)  {  	struct user_struct *u = current_user(); @@ -243,7 +243,6 @@ static struct inode *mqueue_alloc_inode(struct super_block *sb)  static void mqueue_i_callback(struct rcu_head *head)  {  	struct inode *inode = container_of(head, struct inode, i_rcu); -	INIT_LIST_HEAD(&inode->i_dentry);  	kmem_cache_free(mqueue_inode_cachep, MQUEUE_I(inode));  } @@ -296,7 +295,7 @@ static void mqueue_evict_inode(struct inode *inode)  }  static int mqueue_create(struct inode *dir, struct dentry *dentry, -				int mode, struct nameidata *nd) +				umode_t mode, struct nameidata *nd)  {  	struct inode *inode;  	struct mq_attr *attr = dentry->d_fsdata; @@ -611,7 +610,7 @@ static int mq_attr_ok(struct ipc_namespace *ipc_ns, struct mq_attr *attr)   * Invoked when creating a new queue via sys_mq_open   */  static struct file *do_create(struct ipc_namespace *ipc_ns, struct dentry *dir, -			struct dentry *dentry, int oflag, mode_t mode, +			struct dentry *dentry, int oflag, umode_t mode,  			struct mq_attr *attr)  {  	const struct cred *cred = current_cred(); @@ -680,7 +679,7 @@ err:  	return ERR_PTR(ret);  } -SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, mode_t, mode, +SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,  		struct mq_attr __user *, u_attr)  {  	struct dentry *dentry; @@ -1269,7 +1268,7 @@ void mq_clear_sbinfo(struct ipc_namespace *ns)  void mq_put_mnt(struct ipc_namespace *ns)  { -	mntput(ns->mq_mnt); +	kern_unmount(ns->mq_mnt);  }  static int __init init_mqueue_fs(void) @@ -1291,11 +1290,9 @@ static int __init init_mqueue_fs(void)  	spin_lock_init(&mq_lock); -	init_ipc_ns.mq_mnt = kern_mount_data(&mqueue_fs_type, &init_ipc_ns); -	if (IS_ERR(init_ipc_ns.mq_mnt)) { -		error = PTR_ERR(init_ipc_ns.mq_mnt); +	error = mq_init_ns(&init_ipc_ns); +	if (error)  		goto out_filesystem; -	}  	return 0;  |