reiserfs-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Reiser4 for Linux-2.6.31
@ 2009-10-05  1:11 Edward Shishkin
  2009-10-05 16:40 ` mysql.jorge
  2009-10-06 10:28 ` Mat
  0 siblings, 2 replies; 4+ messages in thread
From: Edward Shishkin @ 2009-10-05  1:11 UTC (permalink / raw)
  To: ReiserFS Development List

Hello everyone.

This includes a fixup for a rather old bug:
Reiser4 stepped to the journal code of other journalling
file systems.
Typical symptoms:
. ReiserFS complaints:
"clm-2100", nesting info a different FS".
. Ext3 complaints:
"called recursively, non-PF_MEMALLOC"
example of Call Trace:
 [<c0535873>] ext3_write_inode+0x1e/0x3a
 [<c04b16bc>] __writeback_single_inode+0x193/0x2ad
 [<c0508d86>] ? flush_some_atom+0x427/0x44d
 [<c04b1bb5>] ? generic_sync_sb_inodes+0x27c/0x338
 [<c04b1b68>] generic_sync_sb_inodes+0x22f/0x338
 [<c04b1c8e>] sync_sb_inodes+0x1d/0x20
 [<c04b1e1e>] writeback_inodes+0x79/0xb9
 [<c047c76a>] balance_dirty_pages_ratelimited_nr+0x119/0x21d
 [<c0504803>] reiser4_exit_context+0x5f/0xf6
 [<c051e5a3>] reiser4_write_careful+0x3ba/0x3cc
 [<c049bc3c>] ? do_sync_read+0xab/0xe9
 [<c0613dae>] ? selinux_file_permission+0x44/0x48
 [<c060fea6>] ? security_file_permission+0xf/0x11
 [<c051e1e9>] ? reiser4_write_careful+0x0/0x3cc
 [<c049c494>] vfs_write+0x84/0xdf
 [<c049c588>] sys_write+0x3b/0x60
 [<c0403178>] sysenter_do_call+0x12/0x2d

Other changes since 2.6.30:
. Fix compile warnings (prepared by Brandon Berhent);
. Address a compiler complaints about large frame size
  of reiser4_init_super_data() when building for x86_64.

Please, find at
http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/

Thanks,
Edward.


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

* Re: Reiser4 for Linux-2.6.31
  2009-10-05  1:11 Reiser4 for Linux-2.6.31 Edward Shishkin
@ 2009-10-05 16:40 ` mysql.jorge
  2009-10-06 10:28 ` Mat
  1 sibling, 0 replies; 4+ messages in thread
From: mysql.jorge @ 2009-10-05 16:40 UTC (permalink / raw)
  To: Edward Shishkin; +Cc: ReiserFS Development List

Howdy Edward,

To when reiserfs4 included on the main kernel?

Jorge,


On Mon, 05 Oct 2009 03:11:34 +0200, Edward Shishkin
<edward.shishkin@gmail.com> wrote:
> Hello everyone.
> 
> This includes a fixup for a rather old bug:
> Reiser4 stepped to the journal code of other journalling
> file systems.
> Typical symptoms:
> . ReiserFS complaints:
> "clm-2100", nesting info a different FS".
> . Ext3 complaints:
> "called recursively, non-PF_MEMALLOC"
> example of Call Trace:
>  [<c0535873>] ext3_write_inode+0x1e/0x3a
>  [<c04b16bc>] __writeback_single_inode+0x193/0x2ad
>  [<c0508d86>] ? flush_some_atom+0x427/0x44d
>  [<c04b1bb5>] ? generic_sync_sb_inodes+0x27c/0x338
>  [<c04b1b68>] generic_sync_sb_inodes+0x22f/0x338
>  [<c04b1c8e>] sync_sb_inodes+0x1d/0x20
>  [<c04b1e1e>] writeback_inodes+0x79/0xb9
>  [<c047c76a>] balance_dirty_pages_ratelimited_nr+0x119/0x21d
>  [<c0504803>] reiser4_exit_context+0x5f/0xf6
>  [<c051e5a3>] reiser4_write_careful+0x3ba/0x3cc
>  [<c049bc3c>] ? do_sync_read+0xab/0xe9
>  [<c0613dae>] ? selinux_file_permission+0x44/0x48
>  [<c060fea6>] ? security_file_permission+0xf/0x11
>  [<c051e1e9>] ? reiser4_write_careful+0x0/0x3cc
>  [<c049c494>] vfs_write+0x84/0xdf
>  [<c049c588>] sys_write+0x3b/0x60
>  [<c0403178>] sysenter_do_call+0x12/0x2d
> 
> Other changes since 2.6.30:
> . Fix compile warnings (prepared by Brandon Berhent);
> . Address a compiler complaints about large frame size
>   of reiser4_init_super_data() when building for x86_64.
> 
> Please, find at
>
http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/
> 
> Thanks,
> Edward.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe
reiserfs-devel"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: Reiser4 for Linux-2.6.31
  2009-10-05  1:11 Reiser4 for Linux-2.6.31 Edward Shishkin
  2009-10-05 16:40 ` mysql.jorge
@ 2009-10-06 10:28 ` Mat
  2009-10-06 16:59   ` Edward Shishkin
  1 sibling, 1 reply; 4+ messages in thread
From: Mat @ 2009-10-06 10:28 UTC (permalink / raw)
  To: Edward Shishkin; +Cc: reiserfs-devel

Hi Edward,

thank you very much for the 2.6.31 patch !

Since using this patch I've observed kind of a strange behavior with
mount-options:

most of them don't work anymore !

fortunately

noatime,nodiratime,dont_load_bitmap

works


unfortunately most of the others don't:

[ 4995.449031] reiser4[mount(15761)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 4995.449033] WARNING: Unrecognized option: "tree.cbk_cache.nr_slots=48"
[ 5004.441723] reiser4: dm-2: found disk format 4.0.0.
[ 5020.825676] reiser4: dm-2: found disk format 4.0.0.
[ 5043.265530] reiser4[mount(15780)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5043.265531] WARNING: Unrecognized option: "flush.scan_maxnodes=12000"
[ 5074.032127] reiser4[mount(15784)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5074.032128] WARNING: Unrecognized option: "atom_max_size=0x3dbae"
[ 5085.407094] reiser4[mount(15785)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5085.407095] WARNING: Unrecognized option: "atom_max_size=0x3dbae"
[ 5095.823770] reiser4[mount(15787)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5095.823772] WARNING: Unrecognized option: "atom_max_age=0x3f480"
[ 5107.390510] reiser4[mount(15791)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5107.390511] WARNING: Unrecognized option: "atom_min_size=0x100"
[ 5119.973734] reiser4[mount(15792)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5119.973736] WARNING: Unrecognized option: "atom_max_flushers=0x1"
[ 5131.440685] reiser4[mount(15794)]: parse_options
(fs/reiser4/init_super.c:253)[nikita-2307]:
[ 5131.440687] WARNING: Unrecognized option: "optimal_io_size=65536"

I've seen that in fs/reiser4/init_super.c were some changes in code:

*) reiser4_init_super_data is much lower in the file

*)
static noinline void push_sb_field_opts(struct opt_desc *p,
					struct opt_desc *opts,
					reiser4_super_info_data *sbinfo)
{ ... }

was added

I don't know if those changes might be the reason why it doesn't work
anymore (the parameters perhaps are being initialized too late or not
at all)

anyways - you surely know how to fix it :)

Thanks for your continued efforts in enhancing reiser4 !

I haven't given up hope that it will be included during one of the
next merge-windows in Linus' tree

Regards

Mat

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

* Re: Reiser4 for Linux-2.6.31
  2009-10-06 10:28 ` Mat
@ 2009-10-06 16:59   ` Edward Shishkin
  0 siblings, 0 replies; 4+ messages in thread
From: Edward Shishkin @ 2009-10-06 16:59 UTC (permalink / raw)
  To: Mat; +Cc: reiserfs-devel

[-- Attachment #1: Type: text/plain, Size: 619 bytes --]

Mat wrote:
> Hi Edward,
>   

Hello, Mat.

> thank you very much for the 2.6.31 patch !
>
> Since using this patch I've observed kind of a strange behavior with
> mount-options:
>
> most of them don't work anymore !
>   

Yes, sorry,
please, apply the attached patch, or use the
updated stuff on kernel.org

Thanks!
Edward.

> fortunately
>
> noatime,nodiratime,dont_load_bitmap
>
> works
>
>
> unfortunately most of the others don't:
>
> [ 4995.449031] reiser4[mount(15761)]: parse_options
> (fs/reiser4/init_super.c:253)[nikita-2307]:
> [ 4995.449033] WARNING: Unrecognized option: "tree.cbk_cache.nr_slots=48"
>   


[-- Attachment #2: reiser4-reduce-frame-size-fix.patch --]
[-- Type: text/plain, Size: 2644 bytes --]

. Fix up the bug in reiser4_init_super_data():
  The pointer "p" to opt_desc structure is not
  incremented.
  Pass "&p" instead of "p" to push_sb_field_opts(),
  which is supposed to increment the pointer.
. Modify macros PUSH_OPT, OPT_ARRAY_CHECK to accept
  arguments.

Signed-off-by Edward Shsihkin <edward.shishkin@gmail.com>
---
 fs/reiser4/init_super.c |   28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

--- mmotm.orig/fs/reiser4/init_super.c
+++ mmotm/fs/reiser4/init_super.c
@@ -293,27 +293,27 @@ static int parse_options(char *opt_strin
 #define MAX_NR_OPTIONS (30)
 
 #if REISER4_DEBUG
-#  define OPT_ARRAY_CHECK if ((p) > (opts) + MAX_NR_OPTIONS) {		\
+#  define OPT_ARRAY_CHECK(opt, array)					\
+	if ((opt) > (array) + MAX_NR_OPTIONS) {				\
 		warning("zam-1046", "opt array is overloaded"); break;	\
 	}
 #else
-#   define OPT_ARRAY_CHECK noop
+#   define OPT_ARRAY_CHECK(opt, array) noop
 #endif
 
-#define PUSH_OPT(...)				\
+#define PUSH_OPT(opt, array, ...)		\
 do {						\
 	struct opt_desc o = __VA_ARGS__;	\
-	OPT_ARRAY_CHECK;			\
-	*p ++ = o;				\
+	OPT_ARRAY_CHECK(opt, array);		\
+	*(opt) ++ = o;				\
 } while (0)
 
-#define PUSH_SB_FIELD_OPT(field, format) PUSH_OPT(SB_FIELD_OPT(field, format))
-#define PUSH_BIT_OPT(name, bit) PUSH_OPT(BIT_OPT(name, bit))
-
-static noinline void push_sb_field_opts(struct opt_desc *p,
+static noinline void push_sb_field_opts(struct opt_desc **p,
 					struct opt_desc *opts,
 					reiser4_super_info_data *sbinfo)
 {
+#define PUSH_SB_FIELD_OPT(field, format)		\
+	PUSH_OPT(*p, opts, SB_FIELD_OPT(field, format))
 	/*
 	 * tmgr.atom_max_size=N
 	 * Atoms containing more than N blocks will be forced to commit. N is
@@ -441,8 +441,12 @@ int reiser4_init_super_data(struct super
 	/* initialize structure describing reiser4 mount options */
 	p = opts;
 
-	push_sb_field_opts(p, opts, sbinfo);
+	push_sb_field_opts(&p, opts, sbinfo);
 	/* turn on BSD-style gid assignment */
+
+#define PUSH_BIT_OPT(name, bit)			\
+	PUSH_OPT(p, opts, BIT_OPT(name, bit))
+
 	PUSH_BIT_OPT("bsdgroups", REISER4_BSD_GID);
 	/* turn on 32 bit times */
 	PUSH_BIT_OPT("32bittimes", REISER4_32_BIT_TIMES);
@@ -456,7 +460,7 @@ int reiser4_init_super_data(struct super
 	/* disable use of write barriers in the reiser4 log writer. */
 	PUSH_BIT_OPT("no_write_barrier", REISER4_NO_WRITE_BARRIER);
 
-	PUSH_OPT(
+	PUSH_OPT(p, opts,
 	{
 		/*
 		 * tree traversal readahead parameters:
@@ -482,7 +486,7 @@ int reiser4_init_super_data(struct super
 	);
 
 	/* What to do in case of fs error */
-	PUSH_OPT(
+	PUSH_OPT(p, opts,
 	{
 		.name = "onerror",
 		.type = OPT_ONEOF,

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

end of thread, other threads:[~2009-10-06 16:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-05  1:11 Reiser4 for Linux-2.6.31 Edward Shishkin
2009-10-05 16:40 ` mysql.jorge
2009-10-06 10:28 ` Mat
2009-10-06 16:59   ` Edward Shishkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).