Unionfs hangs (live lock, 100% cpu) when unionfs_statfs() calls
vfs_statfs() on a NFS mounted filesystem.  This bug appears to be
related to NFS changes in 2.6.18 whereby a dummy inode is used for the
root dentry (see http://lwn.net/Articles/174291/).

Unionfs 2.0 has changed unionfs_statfs() to only stat the highest
priority branch.  Comments on the change state:

/* Since people use this to answer the "How big of a file can I write?"
 * question, we report the size of the highest priority branch as the size of
 * the union.
 */

This (deliberately or not) avoids the vfs_statfs() hang because the NFS
branch is never (or rarely) the highest priority branch in a Unionfs
union mount.  Replacing unionfs_statfs() with the original Unionfs 1.x
unionfs_statfs() reproduces the hang on Unionfs 2.0.  Therefore it is
clear the underlying issue still exists in Unionfs 2.0.

The workaround adopted is to change unionfs_statfs() behaviour to
Unionfs 2.0 semantics.



** Changed in: linux-source-2.6.20 (Ubuntu)
       Status: In Progress => Fix Committed

-- 
Unionfs: 'df' hangs if an Unionfs branch is a NFS mount
https://launchpad.net/bugs/90088

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to