On Jun 1, 2011, at 2:38 AM, Boaz Harrosh wrote: > On 06/01/2011 04:30 AM, Weston Andros Adamson wrote: >> Unmounting a pnfs filesystem hangs using filelayout and possibly others. >> This fixes the use of the rcu protected node by making use of a new 'tmpnode' >> for the temporary purge list. Also, the spinlock shouldn't be held when calling >> synchronize_rcu(). >> > > I like the new code, but I have two questions: > > * Why didn't I see this hang? (Maybe because I run uni-processor) > * How do you have this problem. Usually with the regular usage of device-cache > all deviceids get released when layouts go away. So by the time client_purge comes > in there are no more devices in the cache. At objects-ld I take an extra ref at > first add_dev which is then get released in client_purge? > > Thanks > Boaz Yeah, I saw the hangs on a vmware guest with two processors. I believe it looked like this (I can revert and test again if you want the full traces): 1) Umount process calls client_purge, calls synchronize_rcu while holding lock 2) another process notices that it should call client_purge, spins trying acquire lock With the file layout, there are definitely devices in the cache when umount is called. Note, I could only reproduce this by: mounting remote fs, write one byte to a file on remote fs, umount. If I get rid of the "write one byte" step, there is no hang. -dros-- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html