I start using libhandle.so from xfsprogs-3.0.3 package. I meet an issue
here : I can get a handle from files or directory.
When used on diretories, open_by_handle works fine : I can read entries
in it by using getdents, create stuff / removing stuff by using the
ATFILE_FUNCTION (mkdirat, renameat, ...)
Trouble start when I want to open a file with open_by_handle. I have a
small test program that does this :
rc = path_to_fshandle( path_dir, (void **)(&fshandle),
if( rc < 0 ) exit( -1)
rc = path_to_handle( path_dir, (void **)(&filehandle), &handlelen) ;
if( rc < 0 ) exit( -1 )
fd = open_by_handle( filehandle, handlelen, O_RDONLY ) ;
printf( "open_by_handle: fd=%d \n", fd ) ;
if( fd < 0 )
printf( "----> Error=%d | %s\n", errno, strerror( errno ) ) ;
The open_by_handle failed with errno=20 aka ENOTDIR, which is true, this
is a file and no directory.
Question is : Can I use open_by_handle to open a regular file ? If yes,
how should I proceed. If no, how should I do to open a file knowing its
Thanks in advance for your time and answer.