Endless loop in nfs4close_all
I'm currently observing the following problem with nfs4:
The function nfs4close_all() is iterating over an opened stream list but it never returns. It calls nfs4close_one() every time with the same item from the list and I'm wondering why nobody (at least nfs4close_one) is able to remove this item from the list.
ffffff00483e98d0 nfs4close_one+0x5f1() ffffff00483e9970 nfs4close_all+0x15d() ffffff00483e9b50 nfs4_inactive_otw+0x3fb() ffffff00483e9c00 nfs4_async_common_start+0x417(ffffff0fae8eba98, 0) ffffff00483e9c20 nfs4_async_start+0x13() ffffff00483e9c30 thread_start+8()
dtrace told me the following:
nfs4close_one:entry osp->os_delegation=0 osp->os_open_ref_count=0 osp->os_mapcnt=0 osp->os_valid=0 os_ref_count=2 os_force_close=1
...so the item is already marked as "invalid" but is still in the list with a refcount of two. What would be correct in this situation?
No data to display