This is an automated email from the ASF dual-hosted git repository. pkarashchenko pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 19e796305ad0aa3231f88851936bdcb17ea96445 Author: Xiang Xiao <xiaoxi...@xiaomi.com> AuthorDate: Fri Mar 4 11:53:57 2022 +0800 vfs: Forward fcntl(F_SETFD...) to ioctl(FIOCLEX|FIONCLEX...) this is follow change to: commit 37730a1fce987b5a997ee50f4553d6b30a158543 Author: fangzhenwei <fangzhen...@xiaomi.com> Date: Thu Nov 25 13:43:10 2021 +0800 nuttx/fcntl:pass O_NONBLOCK flag to ioctl 1. fix pty fcntl F_SETFL(O_NONBLOCK) fail issue Signed-off-by: fangzhenwei <fangzhen...@xiaomi.com> Signed-off-by: Xiang Xiao <xiaoxi...@xiaomi.com> --- fs/vfs/fs_fcntl.c | 7 ++----- fs/vfs/fs_ioctl.c | 8 ++++---- include/fcntl.h | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/fs/vfs/fs_fcntl.c b/fs/vfs/fs_fcntl.c index aaccd4d..c6b929a 100644 --- a/fs/vfs/fs_fcntl.c +++ b/fs/vfs/fs_fcntl.c @@ -121,14 +121,12 @@ static int file_vfcntl(FAR struct file *filep, int cmd, va_list ap) if (oflags & FD_CLOEXEC) { - filep->f_oflags |= O_CLOEXEC; + ret = file_ioctl(filep, FIOCLEX, NULL); } else { - filep->f_oflags &= ~O_CLOEXEC; + ret = file_ioctl(filep, FIONCLEX, NULL); } - - ret = OK; } break; @@ -167,7 +165,6 @@ static int file_vfcntl(FAR struct file *filep, int cmd, va_list ap) oflags &= (FFCNTL & ~O_NONBLOCK); filep->f_oflags &= ~(FFCNTL & ~O_NONBLOCK); filep->f_oflags |= oflags; - ret = OK; } } break; diff --git a/fs/vfs/fs_ioctl.c b/fs/vfs/fs_ioctl.c index 796cbcf..29c5ec7 100644 --- a/fs/vfs/fs_ioctl.c +++ b/fs/vfs/fs_ioctl.c @@ -95,13 +95,13 @@ int file_vioctl(FAR struct file *filep, int req, va_list ap) break; case FIOCLEX: - ret = file_fcntl(filep, F_SETFD, - file_fcntl(filep, F_GETFD) | FD_CLOEXEC); + filep->f_oflags |= O_CLOEXEC; + ret = OK; break; case FIONCLEX: - ret = file_fcntl(filep, F_SETFD, - file_fcntl(filep, F_GETFD) & ~FD_CLOEXEC); + filep->f_oflags &= ~O_CLOEXEC; + ret = OK; break; case FIOC_FILEPATH: diff --git a/include/fcntl.h b/include/fcntl.h index 2b1de82..9cef7ed 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -103,7 +103,7 @@ #define F_WRLCK 1 /* Take out a write lease */ #define F_UNLCK 2 /* Remove a lease */ -/* close-on-exec flag for F_GETRL and F_SETFL */ +/* close-on-exec flag for F_GETFD and F_SETFD */ #define FD_CLOEXEC 1