All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch] reiser4-for-2.6.20
@ 2007-02-05  3:01 Ingo Bormuth
  2007-02-10  7:26 ` squadra
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Bormuth @ 2007-02-05  3:01 UTC (permalink / raw)
  To: reiserfs-list; +Cc: tormen


[-- Attachment #1.1: Type: text/plain, Size: 813 bytes --]


Please find my reiser4 patch for 2.6.20 at

   http://public.efil.de/reiser4-for-2.6.20-0.patch.gz


See attachment for changes versus 2.6.19.2 from [1]

I don't use cryptocompress and kindly ask you to confirm
'cancel_dirty_page(clust->pages[i], PAGE_CACHE_SIZE);'
in plugin/file/cryptcompress.c, line 1303. As far as I understand
forget_cluster_pages is only called _after_ the cluster's pages have
successfully been flushed. That would make for case (b) in [2].


[1] ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.19/reiser4-for-2.6.19-2.patch.gz
[2] http://www2.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9



-- 
Ingo Bormuth, voicebox & fax: +49-(0)-12125-10226517
public key 86326EC9, http://ibormuth.efil.de/contact

[-- Attachment #1.2: reiser4-2.6.19-to-2.6.20.diff --]
[-- Type: text/plain, Size: 7881 bytes --]

diff -Nru linux-2.6.20-reiser4/fs/reiser4/entd.c new-linux-2.6.20-reiser4/fs/reiser4/entd.c
--- linux-2.6.20-reiser4/fs/reiser4/entd.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/entd.c	2007-02-05 01:47:42.000000000 +0100
@@ -14,13 +14,12 @@
 #include "page_cache.h"
 #include "inode.h"
 
-#include <linux/sched.h>	/* struct task_struct */
+#include <linux/freezer.h>
 #include <linux/suspend.h>
 #include <linux/kernel.h>
 #include <linux/writeback.h>
 #include <linux/time.h>		/* INITIAL_JIFFIES */
 #include <linux/backing-dev.h>	/* bdi_write_congested */
-#include <linux/wait.h>
 #include <linux/kthread.h>
 
 #define DEF_PRIORITY 12
diff -Nru linux-2.6.20-reiser4/fs/reiser4/flush_queue.c new-linux-2.6.20-reiser4/fs/reiser4/flush_queue.c
--- linux-2.6.20-reiser4/fs/reiser4/flush_queue.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/flush_queue.c	2007-02-05 01:30:45.000000000 +0100
@@ -107,7 +107,7 @@
 }
 
 /* slab for flush queues */
-static kmem_cache_t *fq_slab;
+static struct kmem_cache *fq_slab;
 
 /**
  * reiser4_init_fqs - create flush queue cache
diff -Nru linux-2.6.20-reiser4/fs/reiser4/fsdata.c new-linux-2.6.20-reiser4/fs/reiser4/fsdata.c
--- linux-2.6.20-reiser4/fs/reiser4/fsdata.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/fsdata.c	2007-02-05 01:30:45.000000000 +0100
@@ -5,7 +5,7 @@
 #include "inode.h"
 
 /* cache or dir_cursors */
-static kmem_cache_t *d_cursor_cache;
+static struct kmem_cache *d_cursor_cache;
 static struct shrinker *d_cursor_shrinker;
 
 /* list of unused cursors */
@@ -594,7 +594,7 @@
 }
 
 /* slab for reiser4_dentry_fsdata */
-static kmem_cache_t *dentry_fsdata_cache;
+static struct kmem_cache *dentry_fsdata_cache;
 
 /**
  * reiser4_init_dentry_fsdata - create cache of dentry_fsdata
@@ -661,7 +661,7 @@
 }
 
 /* slab for reiser4_file_fsdata */
-static kmem_cache_t *file_fsdata_cache;
+static struct kmem_cache *file_fsdata_cache;
 
 /**
  * reiser4_init_file_fsdata - create cache of reiser4_file_fsdata
diff -Nru linux-2.6.20-reiser4/fs/reiser4/jnode.c new-linux-2.6.20-reiser4/fs/reiser4/jnode.c
--- linux-2.6.20-reiser4/fs/reiser4/jnode.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/jnode.c	2007-02-05 01:30:46.000000000 +0100
@@ -123,7 +123,7 @@
 #include <linux/fs.h>		/* for struct address_space  */
 #include <linux/writeback.h>	/* for inode_lock */
 
-static kmem_cache_t *_jnode_slab = NULL;
+static struct kmem_cache *_jnode_slab = NULL;
 
 static void jnode_set_type(jnode * node, jnode_type type);
 static int jdelete(jnode * node);
diff -Nru linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c new-linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c
--- linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c	2007-02-05 01:48:14.000000000 +0100
@@ -29,12 +29,11 @@
 #include "super.h"
 #include "reiser4.h"
 
-#include <linux/sched.h>	/* for struct task_struct */
-#include <linux/wait.h>
 #include <linux/suspend.h>
 #include <linux/kernel.h>
 #include <linux/writeback.h>
 #include <linux/kthread.h>
+#include <linux/freezer.h>
 
 static int scan_mgr(struct super_block *);
 
diff -Nru linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c new-linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c
--- linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c	2007-02-05 01:21:48.000000000 +0100
@@ -1300,7 +1300,7 @@
 		lock_page(clust->pages[i]);
 		if (PageDirty(clust->pages[i])) {
 			assert("edward-1277", PageUptodate(clust->pages[i]));
-			test_clear_page_dirty(clust->pages[i]);
+			cancel_dirty_page(clust->pages[i], PAGE_CACHE_SIZE);
 		}
 #if REISER4_DEBUG
 		else
diff -Nru linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c new-linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c
--- linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c	2007-02-05 01:30:45.000000000 +0100
@@ -31,7 +31,7 @@
 #include <linux/stddef.h>
 
 /* slab for plugin sets */
-static kmem_cache_t *plugin_set_slab;
+static struct kmem_cache *plugin_set_slab;
 
 static spinlock_t plugin_set_lock[8] __cacheline_aligned_in_smp = {
 	[0 ... 7] = SPIN_LOCK_UNLOCKED
diff -Nru linux-2.6.20-reiser4/fs/reiser4/super.h new-linux-2.6.20-reiser4/fs/reiser4/super.h
--- linux-2.6.20-reiser4/fs/reiser4/super.h	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/super.h	2007-02-05 01:30:46.000000000 +0100
@@ -444,7 +444,7 @@
 void print_fs_info(const char *prefix, const struct super_block *);
 #endif
 
-extern void destroy_reiser4_cache(kmem_cache_t **);
+extern void destroy_reiser4_cache(struct kmem_cache **);
 
 extern struct super_operations reiser4_super_operations;
 extern struct export_operations reiser4_export_operations;
diff -Nru linux-2.6.20-reiser4/fs/reiser4/super_ops.c new-linux-2.6.20-reiser4/fs/reiser4/super_ops.c
--- linux-2.6.20-reiser4/fs/reiser4/super_ops.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/super_ops.c	2007-02-05 01:30:46.000000000 +0100
@@ -14,7 +14,7 @@
 #include <linux/debugfs.h>
 
 /* slab cache for inodes */
-static kmem_cache_t *inode_cache;
+static struct kmem_cache *inode_cache;
 
 static struct dentry *reiser4_debugfs_root = NULL;
 
@@ -27,7 +27,7 @@
  * Initialization function to be called when new page is allocated by reiser4
  * inode cache. It is set on inode cache creation.
  */
-static void init_once(void *obj, kmem_cache_t *cache, unsigned long flags)
+static void init_once(void *obj, struct kmem_cache *cache, unsigned long flags)
 {
 	reiser4_inode_object *info;
 
@@ -595,7 +595,7 @@
 	.next = NULL
 };
 
-void destroy_reiser4_cache(kmem_cache_t **cachep)
+void destroy_reiser4_cache(struct kmem_cache **cachep)
 {
 	BUG_ON(*cachep == NULL);
 	kmem_cache_destroy(*cachep);
diff -Nru linux-2.6.20-reiser4/fs/reiser4/txnmgr.c new-linux-2.6.20-reiser4/fs/reiser4/txnmgr.c
--- linux-2.6.20-reiser4/fs/reiser4/txnmgr.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/txnmgr.c	2007-02-05 01:30:46.000000000 +0100
@@ -90,7 +90,7 @@
    For actually implementing these out-of-system-call-scopped transcrashes, the
    reiser4_context has a "txn_handle *trans" pointer that may be set to an open
    transcrash.  Currently there are no dynamically-allocated transcrashes, but there is a
-   "kmem_cache_t *_txnh_slab" created for that purpose in this file.
+   "struct kmem_cache *_txnh_slab" created for that purpose in this file.
 */
 
 /* Extending the other system call interfaces for future transaction features:
@@ -279,9 +279,9 @@
 
 /* FIXME: In theory, we should be using the slab cache init & destructor
    methods instead of, e.g., jnode_init, etc. */
-static kmem_cache_t *_atom_slab = NULL;
+static struct kmem_cache *_atom_slab = NULL;
 /* this is for user-visible, cross system-call transactions. */
-static kmem_cache_t *_txnh_slab = NULL;
+static struct kmem_cache *_txnh_slab = NULL;
 
 /**
  * init_txnmgr_static - create transaction manager slab caches
diff -Nru linux-2.6.20-reiser4/fs/reiser4/znode.c new-linux-2.6.20-reiser4/fs/reiser4/znode.c
--- linux-2.6.20-reiser4/fs/reiser4/znode.c	2007-02-05 01:55:43.000000000 +0100
+++ new-linux-2.6.20-reiser4/fs/reiser4/znode.c	2007-02-05 01:30:46.000000000 +0100
@@ -196,7 +196,7 @@
 #undef KMALLOC
 
 /* slab for znodes */
-static kmem_cache_t *znode_cache;
+static struct kmem_cache *znode_cache;
 
 int znode_shift_order;
 

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] reiser4-for-2.6.20
  2007-02-05  3:01 [patch] reiser4-for-2.6.20 Ingo Bormuth
@ 2007-02-10  7:26 ` squadra
  2007-02-10 15:09   ` Ingo Bormuth
  0 siblings, 1 reply; 5+ messages in thread
From: squadra @ 2007-02-10  7:26 UTC (permalink / raw)
  To: reiserfs-list


Hi 

i m getting lots of errormessages with the 2.6.20 patch, it looks to me like
they start when i copy files from  a reiser4 partition, to a ext3.

Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83

 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488

Call Trace:
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83

 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483

Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff80209b2e>] system_call+0x7e/0x83

 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff88094247>] :reiser4:save_unix_sd+0x5a/0x69
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8808772e>] :reiser4:write_unix_file+0x413/0x488
 [<ffffffff8027a787>] vfs_write+0xad/0x156
 [<ffffffff8027ad29>] sys_write+0x45/0x6e
 [<ffffffff80209b2e>] system_call+0x7e/0x83


Call Trace:
 [<ffffffff8805099f>] :ext3:ext3_write_inode+0x22/0x40
 [<ffffffff80293594>] __writeback_single_inode+0x225/0x3be
 [<ffffffff88072ff1>] :reiser4:flush_some_atom+0x45c/0x483
 [<ffffffff8807e6c4>] :reiser4:reiser4_writeout+0xe8/0x171
 [<ffffffff80293a92>] generic_sync_sb_inodes+0x1dc/0x2ca
 [<ffffffff80293f3e>] writeback_inodes+0x6e/0xb8
 [<ffffffff8025bbbe>] balance_dirty_pages_ratelimited_nr+0x132/0x221
 [<ffffffff8807bc2b>] :reiser4:reiser4_delete_inode+0x0/0xc1
 [<ffffffff8806ebff>] :reiser4:reiser4_exit_context+0x70/0x115
 [<ffffffff8028b3f2>] generic_delete_inode+0x75/0xeb
 [<ffffffff8028310e>] do_unlinkat+0xd5/0x14b
 [<ffffffff8028d299>] mntput_no_expire+0x19/0x73
 [<ffffffff80278abe>] filp_close+0x5d/0x65
 [<ffffffff80209b2e>] system_call+0x7e/0x83


greetings

Juergen

Ingo Bormuth wrote:
> 
> 
> Please find my reiser4 patch for 2.6.20 at
> 
>    http://public.efil.de/reiser4-for-2.6.20-0.patch.gz
> 
> 
> See attachment for changes versus 2.6.19.2 from [1]
> 
> I don't use cryptocompress and kindly ask you to confirm
> 'cancel_dirty_page(clust->pages[i], PAGE_CACHE_SIZE);'
> in plugin/file/cryptcompress.c, line 1303. As far as I understand
> forget_cluster_pages is only called _after_ the cluster's pages have
> successfully been flushed. That would make for case (b) in [2].
> 
> 
> [1]
> ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.19/reiser4-for-2.6.19-2.patch.gz
> [2]
> http://www2.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9
> 
> 
> 
> -- 
> Ingo Bormuth, voicebox & fax: +49-(0)-12125-10226517
> public key 86326EC9, http://ibormuth.efil.de/contact
> 
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/entd.c
> new-linux-2.6.20-reiser4/fs/reiser4/entd.c
> --- linux-2.6.20-reiser4/fs/reiser4/entd.c	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/entd.c	2007-02-05
> 01:47:42.000000000 +0100
> @@ -14,13 +14,12 @@
>  #include "page_cache.h"
>  #include "inode.h"
>  
> -#include <linux/sched.h>	/* struct task_struct */
> +#include <linux/freezer.h>
>  #include <linux/suspend.h>
>  #include <linux/kernel.h>
>  #include <linux/writeback.h>
>  #include <linux/time.h>		/* INITIAL_JIFFIES */
>  #include <linux/backing-dev.h>	/* bdi_write_congested */
> -#include <linux/wait.h>
>  #include <linux/kthread.h>
>  
>  #define DEF_PRIORITY 12
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/flush_queue.c
> new-linux-2.6.20-reiser4/fs/reiser4/flush_queue.c
> --- linux-2.6.20-reiser4/fs/reiser4/flush_queue.c	2007-02-05
> 01:55:43.000000000 +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/flush_queue.c	2007-02-05
> 01:30:45.000000000 +0100
> @@ -107,7 +107,7 @@
>  }
>  
>  /* slab for flush queues */
> -static kmem_cache_t *fq_slab;
> +static struct kmem_cache *fq_slab;
>  
>  /**
>   * reiser4_init_fqs - create flush queue cache
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/fsdata.c
> new-linux-2.6.20-reiser4/fs/reiser4/fsdata.c
> --- linux-2.6.20-reiser4/fs/reiser4/fsdata.c	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/fsdata.c	2007-02-05
> 01:30:45.000000000 +0100
> @@ -5,7 +5,7 @@
>  #include "inode.h"
>  
>  /* cache or dir_cursors */
> -static kmem_cache_t *d_cursor_cache;
> +static struct kmem_cache *d_cursor_cache;
>  static struct shrinker *d_cursor_shrinker;
>  
>  /* list of unused cursors */
> @@ -594,7 +594,7 @@
>  }
>  
>  /* slab for reiser4_dentry_fsdata */
> -static kmem_cache_t *dentry_fsdata_cache;
> +static struct kmem_cache *dentry_fsdata_cache;
>  
>  /**
>   * reiser4_init_dentry_fsdata - create cache of dentry_fsdata
> @@ -661,7 +661,7 @@
>  }
>  
>  /* slab for reiser4_file_fsdata */
> -static kmem_cache_t *file_fsdata_cache;
> +static struct kmem_cache *file_fsdata_cache;
>  
>  /**
>   * reiser4_init_file_fsdata - create cache of reiser4_file_fsdata
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/jnode.c
> new-linux-2.6.20-reiser4/fs/reiser4/jnode.c
> --- linux-2.6.20-reiser4/fs/reiser4/jnode.c	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/jnode.c	2007-02-05
> 01:30:46.000000000 +0100
> @@ -123,7 +123,7 @@
>  #include <linux/fs.h>		/* for struct address_space  */
>  #include <linux/writeback.h>	/* for inode_lock */
>  
> -static kmem_cache_t *_jnode_slab = NULL;
> +static struct kmem_cache *_jnode_slab = NULL;
>  
>  static void jnode_set_type(jnode * node, jnode_type type);
>  static int jdelete(jnode * node);
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c
> new-linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c
> --- linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c	2007-02-05
> 01:55:43.000000000 +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/ktxnmgrd.c	2007-02-05
> 01:48:14.000000000 +0100
> @@ -29,12 +29,11 @@
>  #include "super.h"
>  #include "reiser4.h"
>  
> -#include <linux/sched.h>	/* for struct task_struct */
> -#include <linux/wait.h>
>  #include <linux/suspend.h>
>  #include <linux/kernel.h>
>  #include <linux/writeback.h>
>  #include <linux/kthread.h>
> +#include <linux/freezer.h>
>  
>  static int scan_mgr(struct super_block *);
>  
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c
> new-linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c
> --- linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c	2007-02-05
> 01:55:43.000000000 +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/plugin/file/cryptcompress.c
> 2007-02-05 01:21:48.000000000 +0100
> @@ -1300,7 +1300,7 @@
>  		lock_page(clust->pages[i]);
>  		if (PageDirty(clust->pages[i])) {
>  			assert("edward-1277", PageUptodate(clust->pages[i]));
> -			test_clear_page_dirty(clust->pages[i]);
> +			cancel_dirty_page(clust->pages[i], PAGE_CACHE_SIZE);
>  		}
>  #if REISER4_DEBUG
>  		else
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c
> new-linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c
> --- linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c	2007-02-05
> 01:55:43.000000000 +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/plugin/plugin_set.c	2007-02-05
> 01:30:45.000000000 +0100
> @@ -31,7 +31,7 @@
>  #include <linux/stddef.h>
>  
>  /* slab for plugin sets */
> -static kmem_cache_t *plugin_set_slab;
> +static struct kmem_cache *plugin_set_slab;
>  
>  static spinlock_t plugin_set_lock[8] __cacheline_aligned_in_smp = {
>  	[0 ... 7] = SPIN_LOCK_UNLOCKED
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/super.h
> new-linux-2.6.20-reiser4/fs/reiser4/super.h
> --- linux-2.6.20-reiser4/fs/reiser4/super.h	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/super.h	2007-02-05
> 01:30:46.000000000 +0100
> @@ -444,7 +444,7 @@
>  void print_fs_info(const char *prefix, const struct super_block *);
>  #endif
>  
> -extern void destroy_reiser4_cache(kmem_cache_t **);
> +extern void destroy_reiser4_cache(struct kmem_cache **);
>  
>  extern struct super_operations reiser4_super_operations;
>  extern struct export_operations reiser4_export_operations;
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/super_ops.c
> new-linux-2.6.20-reiser4/fs/reiser4/super_ops.c
> --- linux-2.6.20-reiser4/fs/reiser4/super_ops.c	2007-02-05
> 01:55:43.000000000 +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/super_ops.c	2007-02-05
> 01:30:46.000000000 +0100
> @@ -14,7 +14,7 @@
>  #include <linux/debugfs.h>
>  
>  /* slab cache for inodes */
> -static kmem_cache_t *inode_cache;
> +static struct kmem_cache *inode_cache;
>  
>  static struct dentry *reiser4_debugfs_root = NULL;
>  
> @@ -27,7 +27,7 @@
>   * Initialization function to be called when new page is allocated by
> reiser4
>   * inode cache. It is set on inode cache creation.
>   */
> -static void init_once(void *obj, kmem_cache_t *cache, unsigned long
> flags)
> +static void init_once(void *obj, struct kmem_cache *cache, unsigned long
> flags)
>  {
>  	reiser4_inode_object *info;
>  
> @@ -595,7 +595,7 @@
>  	.next = NULL
>  };
>  
> -void destroy_reiser4_cache(kmem_cache_t **cachep)
> +void destroy_reiser4_cache(struct kmem_cache **cachep)
>  {
>  	BUG_ON(*cachep == NULL);
>  	kmem_cache_destroy(*cachep);
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/txnmgr.c
> new-linux-2.6.20-reiser4/fs/reiser4/txnmgr.c
> --- linux-2.6.20-reiser4/fs/reiser4/txnmgr.c	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/txnmgr.c	2007-02-05
> 01:30:46.000000000 +0100
> @@ -90,7 +90,7 @@
>     For actually implementing these out-of-system-call-scopped
> transcrashes, the
>     reiser4_context has a "txn_handle *trans" pointer that may be set to
> an open
>     transcrash.  Currently there are no dynamically-allocated
> transcrashes, but there is a
> -   "kmem_cache_t *_txnh_slab" created for that purpose in this file.
> +   "struct kmem_cache *_txnh_slab" created for that purpose in this file.
>  */
>  
>  /* Extending the other system call interfaces for future transaction
> features:
> @@ -279,9 +279,9 @@
>  
>  /* FIXME: In theory, we should be using the slab cache init & destructor
>     methods instead of, e.g., jnode_init, etc. */
> -static kmem_cache_t *_atom_slab = NULL;
> +static struct kmem_cache *_atom_slab = NULL;
>  /* this is for user-visible, cross system-call transactions. */
> -static kmem_cache_t *_txnh_slab = NULL;
> +static struct kmem_cache *_txnh_slab = NULL;
>  
>  /**
>   * init_txnmgr_static - create transaction manager slab caches
> diff -Nru linux-2.6.20-reiser4/fs/reiser4/znode.c
> new-linux-2.6.20-reiser4/fs/reiser4/znode.c
> --- linux-2.6.20-reiser4/fs/reiser4/znode.c	2007-02-05 01:55:43.000000000
> +0100
> +++ new-linux-2.6.20-reiser4/fs/reiser4/znode.c	2007-02-05
> 01:30:46.000000000 +0100
> @@ -196,7 +196,7 @@
>  #undef KMALLOC
>  
>  /* slab for znodes */
> -static kmem_cache_t *znode_cache;
> +static struct kmem_cache *znode_cache;
>  
>  int znode_shift_order;
>  
> 
>  
> 

-- 
View this message in context: http://www.nabble.com/-patch--reiser4-for-2.6.20-tf3172392.html#a8898527
Sent from the ReiserFS - General mailing list archive at Nabble.com.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] reiser4-for-2.6.20
  2007-02-10  7:26 ` squadra
@ 2007-02-10 15:09   ` Ingo Bormuth
  2007-02-10 15:47     ` squadra
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Bormuth @ 2007-02-10 15:09 UTC (permalink / raw)
  To: reiserfs-list

On 2007-02-09 23:26, squadra wrote:
> i m getting lots of errormessages with the 2.6.20 patch, it looks to me like
> they start when i copy files from  a reiser4 partition, to a ext3.

Hi, thanks for your report. 

* Did you use 2.6.19 on that machine before? Any problems with it?
* Do you use reiser4 cryptocmpress?

I'm running two system using my original 2.6.20-patch.
There wasn't a single problem (even under heavy io).

I just created an ext3 partition and filled it up with files from reiser4.
What did you actually do to trigger the errors? Cryptocompress? 


Ingo

-- 
Ingo Bormuth, voicebox & fax: +49-(0)-12125-10226517
public key 86326EC9, http://ibormuth.efil.de/contact


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] reiser4-for-2.6.20
  2007-02-10 15:09   ` Ingo Bormuth
@ 2007-02-10 15:47     ` squadra
  2007-02-11  3:08       ` Ingo Bormuth
  0 siblings, 1 reply; 5+ messages in thread
From: squadra @ 2007-02-10 15:47 UTC (permalink / raw)
  To: reiserfs-list


Hi again,

yes, i had 2.6.19 on this machine, too. but the partition got rerformatted
after switching to 2.6.20, cryptcompres is disabled. i think i found the bug
in the meantime. 


From: Frederik Deweerdt <deweerdt@free.fr>

On Thu, Jan 04, 2007 at 10:02:00PM -0800, Andrew Morton wrote:

>      
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc3-mm1/
Hi,

The reiser4-sb_sync_inodes.patch, which goal is to:
"This patch moves spin_lock/spin_unlock down to sync_sb_inodes."
Only really moved the spin_unlock, thus triggering the following
lockdep message:
[   65.267402] =====================================
[   65.267508] [ BUG: bad unlock balance detected! ]
[   65.267563] -------------------------------------
[   65.267619] swapper/0 is trying to release lock (inode_lock) at:
[   65.267751] [<c018f573>] generic_sync_sb_inodes+0xa6/0x2e8
[   65.267853] but there are no more locks to release!
[   65.267908]
[   65.267909] other info that might help us debug this:
[   65.268014] 1 lock held by swapper/0:
[   65.268068]  #0:  (&type->s_umount_key){--..}, at: [<c0174c18>]
alloc_super+0xe8/0x1a5
[   65.268330]
[   65.268330] stack backtrace:
[   65.268433]  [<c010390d>] show_trace_log_lvl+0x1a/0x30
[   65.268528]  [<c0103935>] show_trace+0x12/0x14
[   65.268621]  [<c0103a2f>] dump_stack+0x16/0x18
[   65.268714]  [<c013b2a0>] print_unlock_inbalance_bug+0xce/0xd8
[   65.268811]  [<c013b39b>] lock_release_non_nested+0x6f/0x172
[   65.268907]  [<c013b4d2>] lock_release_nested+0x34/0xdc
[   65.269001]  [<c013b5ce>] __lock_release+0x54/0x56
[   65.269095]  [<c013b809>] lock_release+0x46/0x60
[   65.269188]  [<c03e8660>] _spin_unlock+0x16/0x40
[   65.269284]  [<c018f573>] generic_sync_sb_inodes+0xa6/0x2e8
[   65.269379]  [<c018f7d5>] sync_sb_inodes+0x20/0x23
[   65.269472]  [<c018f937>] sync_inodes_sb+0x82/0x8a
[   65.269566]  [<c0174eab>] __fsync_super+0xd/0x84
[   65.269659]  [<c0174f2d>] fsync_super+0xb/0x19
[   65.269753]  [<c017558a>] do_remount_sb+0x30/0xee
[   65.269846]  [<c0175aa2>] get_sb_single+0x66/0x8b
[   65.269940]  [<c01b45c1>] sysfs_get_sb+0x1d/0x2c
[   65.270036]  [<c0175b49>] vfs_kern_mount+0x82/0xfb
[   65.270130]  [<c0175c19>] kern_mount+0x16/0x1d
[   65.270223]  [<c055ddb6>] sysfs_init+0x57/0xad
[   65.270319]  [<c055c8d2>] mnt_init+0xbf/0x13b
[   65.270412]  [<c055c555>] vfs_caches_init+0x97/0xa7
[   65.270506]  [<c0544bd4>] start_kernel+0x1ca/0x261
[   65.270600]  [<00000000>] 0x0
[   65.270691]  =======================

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 fs/fs-writeback.c |    2 ++
 1 files changed, 2 insertions(+)

diff -puN fs/fs-writeback.c~reiser4-sb_sync_inodes-fix fs/fs-writeback.c
--- a/fs/fs-writeback.c~reiser4-sb_sync_inodes-fix
+++ a/fs/fs-writeback.c
@@ -317,6 +317,8 @@ int generic_sync_sb_inodes(struct super_
        const unsigned long start = jiffies;    /* livelock avoidance */
        int ret = 0;

+       spin_lock(&inode_lock);
+
        if (!wbc->for_kupdate || list_empty(&sb->s_io))
                list_splice_init(&sb->s_dirty, &sb->s_io);

_


since i applied this patch ontop of yours, the error didnt accour anymore. 

Greetings

Juergen

Ingo Bormuth wrote:
> 
> On 2007-02-09 23:26, squadra wrote:
>> i m getting lots of errormessages with the 2.6.20 patch, it looks to me
>> like
>> they start when i copy files from  a reiser4 partition, to a ext3.
> 
> Hi, thanks for your report. 
> 
> * Did you use 2.6.19 on that machine before? Any problems with it?
> * Do you use reiser4 cryptocmpress?
> 
> I'm running two system using my original 2.6.20-patch.
> There wasn't a single problem (even under heavy io).
> 
> I just created an ext3 partition and filled it up with files from reiser4.
> What did you actually do to trigger the errors? Cryptocompress? 
> 
> 
> Ingo
> 
> -- 
> Ingo Bormuth, voicebox & fax: +49-(0)-12125-10226517
> public key 86326EC9, http://ibormuth.efil.de/contact
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/-patch--reiser4-for-2.6.20-tf3172392.html#a8901836
Sent from the ReiserFS - General mailing list archive at Nabble.com.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] reiser4-for-2.6.20
  2007-02-10 15:47     ` squadra
@ 2007-02-11  3:08       ` Ingo Bormuth
  0 siblings, 0 replies; 5+ messages in thread
From: Ingo Bormuth @ 2007-02-11  3:08 UTC (permalink / raw)
  To: squadra; +Cc: reiserfs-list

On 2007-02-10 07:47, squadra wrote:
> diff -puN fs/fs-writeback.c~reiser4-sb_sync_inodes-fix fs/fs-writeback.c
> --- a/fs/fs-writeback.c~reiser4-sb_sync_inodes-fix
> +++ a/fs/fs-writeback.c
> @@ -317,6 +317,8 @@ int generic_sync_sb_inodes(struct super_
>         const unsigned long start = jiffies;    /* livelock avoidance */
>         int ret = 0;
> 
> +       spin_lock(&inode_lock);
> +
>         if (!wbc->for_kupdate || list_empty(&sb->s_io))
>                 list_splice_init(&sb->s_dirty, &sb->s_io);
> 
> 
> since i applied this patch ontop of yours, the error didnt accour anymore. 

Nice to hear that you Problem has gone away.

Nevertheless I'm a bit confused. The 'spin_lock(&inode_lock);' line is
already there (it's part of the official code since reiser4-for-2.6.11).

There might have been an other issue...

Cheers

   Ingo


-- 
Ingo Bormuth, voicebox & fax: +49-(0)-12125-10226517
public key 86326EC9, http://ibormuth.efil.de/contact


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-02-11  3:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-05  3:01 [patch] reiser4-for-2.6.20 Ingo Bormuth
2007-02-10  7:26 ` squadra
2007-02-10 15:09   ` Ingo Bormuth
2007-02-10 15:47     ` squadra
2007-02-11  3:08       ` Ingo Bormuth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.