Ian Kent:
> I may be missing something about this, but why is it safe to use
> iterate_mounts(), since it doesn't take the vfsmount_lock when
> traversing the list of mounts?

The sample code was not correct.
We need to acquire vfsmount_lock or down_read(namespace_sem).

Or it may be better to extract the body of iterate_mounts() and create a
new function __iterate_mounts() such like that.

__iterate_mounts()
{
        /* equiv to the current iterate_mounts */
}

iterate_mount()
{
        down_read(namespace_sem);
        or spin_lock(&vfsmount_lock);

        __iterate_mount();

        spin_unlock(&vfsmount_lock);
        or up_read(namespace_sem);
}


J. R. Okajima

_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to