[Linux-cluster] gfs on 2.6.9 : umount gives sleeping function called from invalid context

Daniel McNeil daniel at osdl.org
Fri Nov 5 01:40:59 UTC 2004


On Thu, 2004-11-04 at 01:50, Patrick Caulfield wrote:
> On Wed, Nov 03, 2004 at 01:58:22PM -0800, Daniel McNeil wrote:
> > My 3 node cluster is running on 2.6.9 and the GFS cvs from
> > oct 27th.
> > 
> > When I umount the gfs file system I get:
> > 
> > dlm: closing connection to node 1
> > Debug: sleeping function called from invalid context at include/linux/rwsem.h:43in_atomic():1, irqs_disabled():0
> 
> This patch should fix it:
> 
> Index: dlm-kernel/src/lowcomms.c
> ===================================================================
> RCS file: /cvs/cluster/cluster/dlm-kernel/src/lowcomms.c,v
> retrieving revision 1.18
> diff -u -r1.18 lowcomms.c
> --- dlm-kernel/src/lowcomms.c   25 Oct 2004 12:26:45 -0000      1.18
> +++ dlm-kernel/src/lowcomms.c   4 Nov 2004 09:49:40 -0000
> @@ -950,7 +950,7 @@
>                 goto out;
>  
>         log_print("closing connection to node %d", nodeid);
> -       con = nodeid2con(nodeid, 0);
> +       con = connections[nodeid];
>         if (con) {
>                 close_connection(con, TRUE);
>                 clean_one_writequeue(con);
> 

Patrick,

Not quite.  It fixed the might_sleep() in lowcomms_close(),
but there is a down_write() is close_connection() causing
another might_sleep().

Daniel




More information about the Linux-cluster mailing list