[CRIU] [PATCH 2/3] sfd: Make sure we're not overwriting existing files
    Cyrill Gorcunov 
    gorcunov at gmail.com
       
    Mon Apr  1 18:52:56 MSK 2019
    
    
  
On Mon, Apr 01, 2019 at 03:35:43PM +0000, Pavel Emelianov wrote:
...
> >  
> > +#define sfd_verify_targtet(_type, _old_fd, _new_fd)				\
> > +	do {										\
> > +		char self_path[64];							\
> > +											\
> > +		snprintf(self_path, sizeof(self_path), "/proc/self/fd/%d", _new_fd);	\
> > +		if (access(self_path, F_OK)) {						\
> 
> Calling fcntl(fd, F_GETFL) is much faster to check whether the fd in question is busy or not.
> We even have(d) a reopen_fd_safe() for it.
fcntl is faster but a way less flexible. i thought of using it at first place
but though desided to switch to 'access' helper so that we might need to use
this macro for testing other pid's fds, not just for self. but I tend
to agree that this looks like overkill. Will switch back to fcntl later.
    
    
More information about the CRIU
mailing list