On Thu, Mar 02, 2006 at 05:37:44AM +0000, Jeff Roberson wrote:
+> jeff        2006-03-02 05:37:44 UTC
+> 
+>   FreeBSD src repository
+> 
+>   Modified files:
+>     sys/geom             geom_vfs.c 
+>   Log:
+>    - Lock Giant if needed around the call to vnode_create_vobject().  This is
+>      only important if devfs is not mpsafe.
[...]
+>      g_topology_assert();
+> @@ -147,7 +148,9 @@ g_vfs_open(struct vnode *vp, struct g_co
+>              g_wither_geom(gp, ENXIO);
+>              return (error);
+>      }
+> +    vfslocked = VFS_LOCK_GIANT(vp->v_mount);
+>      vnode_create_vobject(vp, pp->mediasize, curthread);
+> +    VFS_UNLOCK_GIANT(vfslocked);

Acquiring Giant while holding the topology lock is a bad thing, AFAIK.
CCing phk@ to correct me if I'm wrong or explain why exactly I'm right.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
[EMAIL PROTECTED]                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

Attachment: pgp5wDoBFJdK8.pgp
Description: PGP signature

Reply via email to