From: Joshua J. B. <con...@co...> - 2005-05-18 18:19:42
|
On Wed, May 18, 2005 at 07:43:00PM +0200, Valient Gough wrote: > On Wednesday 18 May 2005 18:23, Joshua J. Berry wrote: > > Just out of curiosity, what is the difference between LOOKUP and GETATT= R? > > > > I was noticing they both appear to do roughly the same thing (even thou= gh > > they're handled slightly differently), and I was wondering which gets > > triggered in what situations. > > >=20 > LOOKUP is sent when the inode number isn't known. GETATTR is sent to fin= d the=20 > attributes of a particular inode. So you won't see GETATTR calls for a n= ode=20 > unless it has been looked up with LOOKUP. >=20 > LOOKUP takes <directory inode, child node name> and returns a fuse_entry_= out=20 > structure which contains the node id of the child (if it exists). A GETA= TTR=20 > takes a node id and returns a fuse_attr_out structure for that node. Bot= h=20 > structures contain the various attributes of the file, but they are used = at=20 > different times. Ahhhh, ok. That makes sense. Thanks. :) > If you are interested in the kernel level communication, you can look in = the=20 > kernel/fuse_kernel.h header file which shows the structures the FUSE kern= el=20 > module uses for communicating with user programs (like libfuse). Yeah, that's what I've been looking at. I have decided I want an Inode-bas= ed interface for my filesystem (which is in C++), hence my question. -- Josh --=20 Joshua J. Berry "I haven't lost my mind -- it's backed up on tape somewhere." -- /usr/games/fortune |