* [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.