summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/fs/mqueue/mq_close.c1
-rw-r--r--nuttx/fs/mqueue/mq_open.c3
-rw-r--r--nuttx/fs/mqueue/mq_unlink.c2
-rw-r--r--nuttx/fs/semaphore/sem_open.c5
-rw-r--r--nuttx/fs/semaphore/sem_unlink.c5
5 files changed, 12 insertions, 4 deletions
diff --git a/nuttx/fs/mqueue/mq_close.c b/nuttx/fs/mqueue/mq_close.c
index 7df2d8a26..e1c8c1438 100644
--- a/nuttx/fs/mqueue/mq_close.c
+++ b/nuttx/fs/mqueue/mq_close.c
@@ -150,6 +150,7 @@ int mq_close(mqd_t mqdes)
/* Decrement the reference count on the inode */
mq_inode_release(inode);
+ sched_unlock();
}
return OK;
diff --git a/nuttx/fs/mqueue/mq_open.c b/nuttx/fs/mqueue/mq_open.c
index 595adeb97..8588ebb73 100644
--- a/nuttx/fs/mqueue/mq_open.c
+++ b/nuttx/fs/mqueue/mq_open.c
@@ -235,9 +235,10 @@ mqd_t mq_open(const char *mq_name, int oflags, ...)
inode->u.i_mqueue = msgq;
msgq->inode = inode;
}
+
+ sched_unlock();
}
- sched_unlock();
return mqdes;
errout_with_msgq:
diff --git a/nuttx/fs/mqueue/mq_unlink.c b/nuttx/fs/mqueue/mq_unlink.c
index 2caf0df6b..496571163 100644
--- a/nuttx/fs/mqueue/mq_unlink.c
+++ b/nuttx/fs/mqueue/mq_unlink.c
@@ -160,6 +160,7 @@ int mq_unlink(FAR const char *mq_name)
inode_semgive();
mq_inode_release(inode);
+ sched_unlock();
return OK;
errout_with_semaphore:
@@ -168,5 +169,6 @@ errout_with_inode:
inode_release(inode);
errout:
set_errno(errcode);
+ sched_unlock();
return ERROR;
}
diff --git a/nuttx/fs/semaphore/sem_open.c b/nuttx/fs/semaphore/sem_open.c
index 579a94455..292eddc82 100644
--- a/nuttx/fs/semaphore/sem_open.c
+++ b/nuttx/fs/semaphore/sem_open.c
@@ -255,16 +255,17 @@ FAR sem_t *sem_open (FAR const char *name, int oflags, ...)
sem = &nsem->ns_sem;
}
+
+ sched_unlock();
}
- sched_unlock();
return sem;
errout_with_inode:
inode_release(inode);
errout_with_lock:
- sched_unlock();
set_errno(errcode);
+ sched_unlock();
return (FAR sem_t *)ERROR;
}
diff --git a/nuttx/fs/semaphore/sem_unlink.c b/nuttx/fs/semaphore/sem_unlink.c
index 6b10b1a6b..393b435d4 100644
--- a/nuttx/fs/semaphore/sem_unlink.c
+++ b/nuttx/fs/semaphore/sem_unlink.c
@@ -162,7 +162,9 @@ int sem_unlink(FAR const char *name)
*/
inode_semgive();
- return sem_close((FAR sem_t *)inode->u.i_nsem);
+ ret = sem_close((FAR sem_t *)inode->u.i_nsem);
+ sched_unlock();
+ return ret;
errout_with_semaphore:
inode_semgive();
@@ -170,5 +172,6 @@ errout_with_inode:
inode_release(inode);
errout:
set_errno(errcode);
+ sched_unlock();
return ERROR;
}