|
@@ -1138,8 +1138,10 @@ asmlinkage long sys_mq_getsetattr(mqd_t mqdes,
|
|
omqstat.mq_flags = filp->f_flags & O_NONBLOCK;
|
|
omqstat.mq_flags = filp->f_flags & O_NONBLOCK;
|
|
if (u_mqstat) {
|
|
if (u_mqstat) {
|
|
ret = audit_mq_getsetattr(mqdes, &mqstat);
|
|
ret = audit_mq_getsetattr(mqdes, &mqstat);
|
|
- if (ret != 0)
|
|
|
|
- goto out;
|
|
|
|
|
|
+ if (ret != 0) {
|
|
|
|
+ spin_unlock(&info->lock);
|
|
|
|
+ goto out_fput;
|
|
|
|
+ }
|
|
if (mqstat.mq_flags & O_NONBLOCK)
|
|
if (mqstat.mq_flags & O_NONBLOCK)
|
|
filp->f_flags |= O_NONBLOCK;
|
|
filp->f_flags |= O_NONBLOCK;
|
|
else
|
|
else
|