From d6bcf78bdbc99f5411dcde1163b12ff573f66ca9 Mon Sep 17 00:00:00 2001 From: mpi Date: Thu, 30 Apr 2015 09:20:51 +0000 Subject: Indroduce fd_getfile_mode() and use it were fd_getfile() is directly followed by a mode check. This will simplify the ref/unref dance as soon as fd_getfile() will increment fp's reference counter. Idea from and ok guenther@, ok millert@ --- sys/compat/linux/linux_termios.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'sys/compat/linux/linux_termios.c') diff --git a/sys/compat/linux/linux_termios.c b/sys/compat/linux/linux_termios.c index 1baae7e2f6d..9b555947c6b 100644 --- a/sys/compat/linux/linux_termios.c +++ b/sys/compat/linux/linux_termios.c @@ -1,4 +1,4 @@ -/* $OpenBSD: linux_termios.c,v 1.17 2014/03/26 05:23:42 guenther Exp $ */ +/* $OpenBSD: linux_termios.c,v 1.18 2015/04/30 09:20:51 mpi Exp $ */ /* $NetBSD: linux_termios.c,v 1.3 1996/04/05 00:01:54 christos Exp $ */ /* @@ -461,15 +461,10 @@ linux_ioctl_termios(p, v, retval) int error = 0; fdp = p->p_fd; - if ((fp = fd_getfile(fdp, SCARG(uap, fd))) == NULL) + if ((fp = fd_getfile_mode(fdp, SCARG(uap, fd), FREAD|FWRITE)) == NULL) return (EBADF); FREF(fp); - if ((fp->f_flag & (FREAD | FWRITE)) == 0) { - error = EBADF; - goto out; - } - com = SCARG(uap, com); retval[0] = 0; -- cgit v1.2.3-59-g8ed1b