[vlc-devel] [PATCH] linux: vlc_memfd: handle EOPNOTSUPP errno

Thomas Guillem thomas at gllm.fr
Fri Jun 14 11:11:33 CEST 2019



On Fri, Jun 14, 2019, at 10:25, Rémi Denis-Courmont wrote:
> Le vendredi 14 juin 2019, 10:17:16 EEST Thomas Guillem a écrit :
> > from manpage:
> > 
> > BUGS
> > One must check for two different error codes, EISDIR and ENOENT, when trying
> > to determine whether the kernel supports O_TMPFILE functionality.
> 
> This is obviously incorrect. Feel free to patch the man pages.

No, I won't.

This is not a problem of manpages, but a problem with older libc/kernel implementation/bugs around O_TMPFILE.

cf. https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/open/open14.c#L52
EISDIR and ENOENT are expected to be checked in order to test if TMPFILE is supported.

As you can see O_TMPFILE feature was not added smoothly.
https://lwn.net/Articles/562294/
https://bugs.launchpad.net/qemu/+bug/1709170

>  
> The error code is:
> 
> - ENOENT if /tmp does not exist,
> - EISDIR if /tmp exists and O_TMPFILE is ignored,
> - EOPNOTSUPP /tmp exists, O_TMPFILE is not ignored and the file system does not 
> support O_TMPFILE.
> 
> In fact, we could just as well remove the special handling of ENOENT, because 
> the mkstemp() fallback is not going to work if /tmp does not exist.
> 
> -- 
> Rémi Denis-Courmont
> 
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list