SYSIO_INTERFACE_ENTER;
if (newfd < 0)
SYSIO_INTERFACE_RETURN(-1, -EBADF);
-
- if (oldfd == newfd) {
- struct file *fil;
-
- fil = _sysio_fd_find(oldfd);
- if (!(fil && fil->f_ino))
- SYSIO_INTERFACE_RETURN(-1, -EBADF);
- SYSIO_INTERFACE_RETURN(newfd, 0);
- }
-
- fd = _sysio_fd_dup2(oldfd, newfd);
+ fd = _sysio_fd_dup(oldfd, newfd, 1);
SYSIO_INTERFACE_RETURN(fd < 0 ? -1 : fd, fd < 0 ? fd : 0);
}
SYSIO_INTERFACE_DISPLAY_BLOCK;
SYSIO_INTERFACE_ENTER;
- fd = _sysio_fd_dup2(oldfd, -1);
+ fd = _sysio_fd_dup(oldfd, -1, 0);
SYSIO_INTERFACE_RETURN(fd < 0 ? -1 : fd, fd < 0 ? fd : 0);
}