From 61c82404580367de237ece3d3d437f906647239c Mon Sep 17 00:00:00 2001 From: Zhe Weng Date: Thu, 13 Mar 2025 10:46:28 +0800 Subject: [PATCH] fs/lock: Allow driver lock Sometimes we need to flock a driver node, which we can support easily. Signed-off-by: Zhe Weng --- fs/vfs/fs_lock.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/vfs/fs_lock.c b/fs/vfs/fs_lock.c index ff43d28f388..f685eace90c 100644 --- a/fs/vfs/fs_lock.c +++ b/fs/vfs/fs_lock.c @@ -100,11 +100,14 @@ static mutex_t g_protect_lock = NXMUTEX_INITIALIZER; static int file_lock_get_path(FAR struct file *filep, FAR char *path) { FAR struct tcb_s *tcb = this_task(); + bool is_allowed_type; - /* We only apply file lock on mount points (f_inode won't be NULL). */ + /* We only apply file lock on mountpt and driver (f_inode won't be NULL). */ - if (!INODE_IS_MOUNTPT(filep->f_inode) || - tcb->flags & TCB_FLAG_SIGNAL_ACTION) + is_allowed_type = INODE_IS_MOUNTPT(filep->f_inode) || + INODE_IS_DRIVER(filep->f_inode); + + if (!is_allowed_type || tcb->flags & TCB_FLAG_SIGNAL_ACTION) { return -EBADF; }