Hi Viro,

Thank you for your help and advice.
I made the following patches referring to your advice. 
I try to debugging by using this patch. 

Thanks again,
Haruo

diff -urN linux-2.6.12-rc2.orig/fs/file_table.c linux-2.6.12-rc2/fs/file_table.c
--- linux-2.6.12-rc2.orig/fs/file_table.c       2005-03-02 16:37:47.000000000 
+0900
+++ linux-2.6.12-rc2/fs/file_table.c    2005-04-05 11:21:58.000000000 +0900
@@ -26,6 +26,7 @@
 
 /* public. Not pretty! */
  __cacheline_aligned_in_smp DEFINE_SPINLOCK(files_lock);
+pid_t holder_pid;
 
 static DEFINE_SPINLOCK(filp_count_lock);
 
diff -urN linux-2.6.12-rc2.orig/include/linux/fs.h 
linux-2.6.12-rc2/include/linux/fs.h
--- linux-2.6.12-rc2.orig/include/linux/fs.h    2005-04-05 11:12:53.000000000 
+0900
+++ linux-2.6.12-rc2/include/linux/fs.h 2005-04-05 11:20:15.000000000 +0900
@@ -602,8 +602,17 @@
        struct address_space    *f_mapping;
 };
 extern spinlock_t files_lock;
-#define file_list_lock() spin_lock(&files_lock);
-#define file_list_unlock() spin_unlock(&files_lock);
+extern pid_t holder_pid;
+#define file_list_lock() \
+       do { \
+               spin_lock(&files_lock); \
+               holder_pid = current->pid; \
+       }while(0)
+#define file_list_unlock() \
+       do { \
+               holder_pid = 0; \
+               spin_unlock(&files_lock); \
+       }while(0)
 
 #define get_file(x)    atomic_inc(&(x)->f_count)
 #define file_count(x)  atomic_read(&(x)->f_count)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to