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).
Dean
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>
|