Merge branch 'work.mqueue' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-block.git] / ipc / mqueue.c
index 738579191fd22cbff71592c4a5e5840ab9574bf7..690ae6665500f7990e29f44cc662d590b491147f 100644 (file)
@@ -569,10 +569,10 @@ static int mqueue_flush_file(struct file *filp, fl_owner_t id)
        return 0;
 }
 
-static unsigned int mqueue_poll_file(struct file *filp, struct poll_table_struct *poll_tab)
+static __poll_t mqueue_poll_file(struct file *filp, struct poll_table_struct *poll_tab)
 {
        struct mqueue_inode_info *info = MQUEUE_I(file_inode(filp));
-       int retval = 0;
+       __poll_t retval = 0;
 
        poll_wait(filp, &info->wait_q, poll_tab);
 
@@ -689,6 +689,7 @@ static void __do_notify(struct mqueue_inode_info *info)
                case SIGEV_SIGNAL:
                        /* sends signal */
 
+                       clear_siginfo(&sig_i);
                        sig_i.si_signo = info->notify.sigev_signo;
                        sig_i.si_errno = 0;
                        sig_i.si_code = SI_MESGQ;