X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=ipc%2Fmqueue.c;h=916785363f0f104ac6820fd27dfeaba71bde2727;hb=50397507e856455b3f5cb3d5c7c482209f9e46a0;hp=54b4077fed79aaac0cd03da6c725d5d322b1159c;hpb=15a5b0a4912d98a9615ef457c7bde8d08195a771;p=linux-2.6-omap-h63xx.git diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 54b4077fed7..916785363f0 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -602,7 +602,7 @@ static struct file *do_create(struct dentry *dir, struct dentry *dentry, dentry->d_fsdata = attr; } - mode &= ~current->fs->umask; + mode &= ~current_umask(); ret = mnt_want_write(mqueue_mnt); if (ret) goto out; @@ -1156,10 +1156,12 @@ SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes, omqstat.mq_flags = filp->f_flags & O_NONBLOCK; if (u_mqstat) { audit_mq_getsetattr(mqdes, &mqstat); + spin_lock(&filp->f_lock); if (mqstat.mq_flags & O_NONBLOCK) filp->f_flags |= O_NONBLOCK; else filp->f_flags &= ~O_NONBLOCK; + spin_unlock(&filp->f_lock); inode->i_atime = inode->i_ctime = CURRENT_TIME; }