open_by_handle on a file ?

DENIEL Philippe philippe.deniel at CEA.FR
Wed May 12 10:39:44 CDT 2010


Hi,

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),
    &fshandlelen) ;
      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 
handle ?

    Thanks in advance for your time and answer.

       Regards

          Philippe





More information about the xfs mailing list