[Top] [All Lists]

Re: dm_write_invis() blocking problem

To: Dean Roehrich <roehrich@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: dm_write_invis() blocking problem
From: Mike Montour <mmontour@xxxxxxxxxx>
Date: Thu, 12 Feb 2004 14:01:25 -0800
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <200402111837.i1BIb09i8169144@xxxxxxxxxxxxxxxxxxxxxx>
References: <200402111837.i1BIb09i8169144@xxxxxxxxxxxxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
Dean Roehrich wrote:

I'm currently testing the following patch, which should alleviate the hang.

The problem is that a thread was able to get into the dmapi queues while
holding a resource (i_sem, in this case).

Thank you for the patch. It fixes my DM_EVENT_WRITE problem. However,
I can trigger a similar situation by calling dm_write_invis() while processing
a TRUNCATE event. A co-worker has been helping me test this using KDB,
and I've attached his notes.

Also, when the patch is applied to a current checkout of the SGI CVS tree
(pserver:cvs@xxxxxxxxxxx:/cvs), there is a link failure:

fs/fs.o: In function `xfs_dm_send_data_event':
fs/fs.o(.text+0xac8fb): undefined reference to `do_up_read'
fs/fs.o(.text+0xac94b): undefined reference to `do_down_read'
make[1]: *** [kallsyms] Error 1
make[1]: Leaving directory `/usr/local/tmp/linux-2.4-xfs'
make: *** [vmlinux] Error 2

I worked around this by pasting two lines from linux-2.4/xfs_file.c
into dmapi/dmapi_xfs.c:

#define    do_down_read(x)    down_read(x)
#define do_up_read(x)    up_read(x)

  -Mike <mmontour@xxxxxxxxxx>

<Prev in Thread] Current Thread [Next in Thread>