]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - ipc/mqueue.c
doc: move vm/00-INDEX to Documentation/vm
[linux-2.6-omap-h63xx.git] / ipc / mqueue.c
index d17821d3f4835a646a8a6977e9491f0ed09d1ea4..774843cff756fe169948b8a084649d5f36dcb7fa 100644 (file)
@@ -211,12 +211,11 @@ static int mqueue_get_sb(struct file_system_type *fs_type,
        return get_sb_single(fs_type, flags, data, mqueue_fill_super, mnt);
 }
 
-static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags)
+static void init_once(struct kmem_cache *cachep, void *foo)
 {
        struct mqueue_inode_info *p = (struct mqueue_inode_info *) foo;
 
-       if (flags & SLAB_CTOR_CONSTRUCTOR)
-               inode_init_once(&p->vfs_inode);
+       inode_init_once(&p->vfs_inode);
 }
 
 static struct inode *mqueue_alloc_inode(struct super_block *sb)
@@ -522,8 +521,7 @@ static void __do_notify(struct mqueue_inode_info *info)
                        break;
                case SIGEV_THREAD:
                        set_cookie(info->notify_cookie, NOTIFY_WOKENUP);
-                       netlink_sendskb(info->notify_sock,
-                                       info->notify_cookie, 0);
+                       netlink_sendskb(info->notify_sock, info->notify_cookie);
                        break;
                }
                /* after notification unregisters process */
@@ -569,7 +567,7 @@ static void remove_notification(struct mqueue_inode_info *info)
        if (info->notify_owner != NULL &&
            info->notify.sigev_notify == SIGEV_THREAD) {
                set_cookie(info->notify_cookie, NOTIFY_REMOVED);
-               netlink_sendskb(info->notify_sock, info->notify_cookie, 0);
+               netlink_sendskb(info->notify_sock, info->notify_cookie);
        }
        put_pid(info->notify_owner);
        info->notify_owner = NULL;
@@ -681,6 +679,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
 
        if (oflag & O_CREAT) {
                if (dentry->d_inode) {  /* entry already exists */
+                       audit_inode(name, dentry->d_inode);
                        error = -EEXIST;
                        if (oflag & O_EXCL)
                                goto out;
@@ -693,6 +692,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
                error = -ENOENT;
                if (!dentry->d_inode)
                        goto out;
+               audit_inode(name, dentry->d_inode);
                filp = do_open(dentry, oflag);
        }
 
@@ -840,6 +840,7 @@ asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
        if (unlikely(filp->f_op != &mqueue_file_operations))
                goto out_fput;
        info = MQUEUE_I(inode);
+       audit_inode(NULL, inode);
 
        if (unlikely(!(filp->f_mode & FMODE_WRITE)))
                goto out_fput;
@@ -923,6 +924,7 @@ asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
        if (unlikely(filp->f_op != &mqueue_file_operations))
                goto out_fput;
        info = MQUEUE_I(inode);
+       audit_inode(NULL, inode);
 
        if (unlikely(!(filp->f_mode & FMODE_READ)))
                goto out_fput;
@@ -1250,7 +1252,7 @@ static int __init init_mqueue_fs(void)
 
        mqueue_inode_cachep = kmem_cache_create("mqueue_inode_cache",
                                sizeof(struct mqueue_inode_info), 0,
-                               SLAB_HWCACHE_ALIGN, init_once, NULL);
+                               SLAB_HWCACHE_ALIGN, init_once);
        if (mqueue_inode_cachep == NULL)
                return -ENOMEM;