why do I have so many getattrs?

wwshen@engin.umich.edu wwshen at engin.umich.edu
Thu Aug 6 03:18:44 CEST 1998


    When I run the arlad to save a file, I find 
the operation getattr are called several times.
I really dont understand why this happen so many
times. Hope someone can give me an explanation
about this. Thanks a lot.

    The following is the debug from arlad:

......................................
Wed Aug  5 21:06:07 1998: arlad: Rec message: opcode = 6 (getattr), size =
36
Wed Aug  5 21:06:07 1998: arlad: Start of
xfs_message_getattr:h->handle=0x0,0x6
17664c6,0x4e2,0x2102
Wed Aug  5 21:06:07 1998: arlad: xfs_message_getattr calling cm_getattr...
Wed Aug  5 21:06:07 1998: arlad: cm_getattr calling fcache_get...             
Wed Aug  5 21:06:07 1998: arlad: Start of fcache_get:
Cell=0x0,fid.Volume=0x617664c6,fid.Vnode=0x4e2, fid.fid.Unique=0x2102                                   
Wed Aug  5 21:06:07 1998: arlad: Start of find_entry
Wed Aug  5 21:06:07 1998: arlad: In find_entry: DO WE have an entry 694100
..........................................
Wed Aug  5 21:06:07 1998: arlad: cm_getattr calling checkright...
Wed Aug  5 21:06:07 1998: arlad: In findaccess: ae[0].cred=4, cred=0
Wed Aug  5 21:06:07 1998: arlad: In findaccess: ae[1].cred=0, cred=0
Wed Aug  5 21:06:07 1998: arlad: cm_getattr is done res=0 and return to
the above by sww
Wed Aug  5 21:06:07 1998: arlad: Multi-send: opcode = 7 (installattr),
size = 120
Wed Aug  5 21:06:07 1998: arlad: multi-sending wakeup: seq = 6183, error =0
Wed Aug  5 21:06:07 1998: arlad: xfs_message_getattr returning res.res=0,res.e
rror=1891940
Wed Aug  5 21:06:07 1998: arlad: proc_msg: byte = 32
Wed Aug  5 21:06:07 1998: arlad: Rec message: opcode = 10 (inactivenode),size= 32
Wed Aug  5 21:06:07 1998: arlad: Start of fcache_get:
Cell=0x0,fid.Volume=0x617
664c6,fid.Vnode=0x4e2, fid.fid.Unique=0x2102
Wed Aug  5 21:06:07 1998: arlad: Start of find_entry
Wed Aug  5 21:06:07 1998: arlad: In find_entry: DO WE have an entry 694100
Wed Aug  5 21:06:07 1998: arlad: In fcache_get: do we get an entry 694100
Wed Aug  5 21:06:07 1998: arlad: End of fcache_get by an old one 8 added
by sww
Wed Aug  5 21:06:07 1998: arlad: proc_msg: byte = 36
Wed Aug  5 21:06:07 1998: arlad: Rec message: opcode = 6 (getattr), size =
36
Wed Aug  5 21:06:07 1998: arlad: Start of
xfs_message_getattr:h->handle=0x0,0x617664c6,0x4e2,0x2102

   Why do we have getattr call again for the same handle? Does xfs
receive the message about cancelling callback here? I dont think so.

Wed Aug  5 21:06:07 1998: arlad: In uptodatep:
tv.tv_sec=902365567,inode=8,e->c
allback.CallBackType=2,e->callback.ExpirationTime=902379980,
Wed Aug  5 21:06:07 1998: arlad: In uptodatep: Just from disconnect mode
Wed Aug  5 21:06:07 1998: arlad: e has been cached in fcache_get_attr,
entry->i
node=8, added by sww
Wed Aug  5 21:06:07 1998: arlad: cm_getattr calling checkright...
Wed Aug  5 21:06:07 1998: arlad: In findaccess: ae[0].cred=4, cred=0
Wed Aug  5 21:06:07 1998: arlad: In findaccess: ae[1].cred=0, cred=0
Wed Aug  5 21:06:07 1998: arlad: cm_getattr is done res=0 and return to
the abo
ve by sww
Wed Aug  5 21:06:07 1998: arlad: Multi-send: opcode = 7 (installattr),
size = 120 
Wed Aug  5 21:06:07 1998: arlad: multi-sending wakeup: seq = 6185,
error =
0Wed Aug  5 21:06:07 1998: arlad: xfs_message_getattr returning res.res=0,
res.error=1891940
Wed Aug  5 21:06:07 1998: arlad: proc_msg: byte = 36

   The above program running is the same as the previous one. In the
following arlad gets the another getattr call from xfs. Then arlad 
receives the call about open. So why do we have three getattr for
the same file?
best,
wuwei

   












More information about the Arla-drinkers mailing list