[Top] [All Lists]

open_by_handle on a file ?

To: xfs@xxxxxxxxxxx
Subject: open_by_handle on a file ?
From: DENIEL Philippe <philippe.deniel@xxxxxx>
Date: Wed, 12 May 2010 17:39:44 +0200
Organization: CEA-DAM
User-agent: Thunderbird (X11/20070728)

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.



<Prev in Thread] Current Thread [Next in Thread>