From: Edward Shishkin <edward.shishkin@gmail.com>
To: "Sven Müller" <musv@gmx.de>, "Andrew Morton" <akpm@linux-foundation.org>
Cc: ReiserFS Mailing List <reiserfs-devel@vger.kernel.org>,
Christoph Hellwig <hch@lst.de>
Subject: [patch] reiser4: new export_ops fixup
Date: Sat, 08 Mar 2008 17:18:12 +0300 [thread overview]
Message-ID: <47D2A024.4020702@gmail.com> (raw)
In-Reply-To: <20080307154338.84630@gmx.net>
[-- Attachment #1: Type: text/plain, Size: 2784 bytes --]
Sven Müller wrote:
>Hi,
>
>yesterday I tried a new kernel version (2.6.24-r3). And today in the morning I got the next kernel oops. The problem is still the same:
>
>Access portage via nfs.
>
>The file system should be consistent. At least my machine didn't crash since the last check. And I didn't get any other errors.
>
>The kernel ooops message is:
>
>
>Mar 7 08:23:46 Blechkasten su[7174]: + pts/4 sm:root
>Mar 7 08:30:01 Blechkasten BUG: unable to handle kernel NULL pointer dereference at virtual address 00000050
>Mar 7 08:30:01 Blechkasten printing eip: c01a8c7a *pde = 00000000
>Mar 7 08:30:01 Blechkasten Oops: 0000 [#1]
>Mar 7 08:30:01 Blechkasten Modules linked in: libafs(P) lirc_i2c(F) lirc_dev nvidia(P) tuner tea5767 tda8290 tuner_simple mt20xx tea5761 bttv ir_common videobuf_dma_sg videobuf_core btcx_risc tveeprom
>Mar 7 08:30:01 Blechkasten
>Mar 7 08:30:01 Blechkasten Pid: 3233, comm: nfsd Tainted: PF (2.6.24-gentoo-r3 #1)
>Mar 7 08:30:01 Blechkasten EIP: 0060:[<c01a8c7a>] EFLAGS: 00010286 CPU: 0
>Mar 7 08:30:01 Blechkasten EIP is at max_item_size_node40+0xb/0x15
>Mar 7 08:30:01 Blechkasten EAX: 00000000 EBX: 00000002 ECX: ec2352b4 EDX: c01ae184
>Mar 7 08:30:01 Blechkasten ESI: c04dd9e4 EDI: c045a02a EBP: f4f8fbdc ESP: f4f8fb60
>Mar 7 08:30:01 Blechkasten cron[30633]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
>Mar 7 08:30:01 Blechkasten DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
>Mar 7 08:30:01 Blechkasten Process nfsd (pid: 3233, ti=f4f8e000 task=f4f02ff0 task.ti=f4f8e000)
>Mar 7 08:30:01 Blechkasten Stack: c01ae18f c019836d c01a8842 ffffffdc c01a81eb 0000000c 8e0d1a53 f4f8fc58
>Mar 7 08:30:01 Blechkasten ec2352b4 f4f8fb9c 00000282 0000fa80 d0dddd00 00000074 e3d49000 c036957f
>Mar 7 08:30:01 Blechkasten e3d49000 f4921242 00000074 00000000 00000000 00000000 f4921242 00000042
>Mar 7 08:30:01 Blechkasten Call Trace:
>Mar 7 08:30:01 Blechkasten [<c01ae18f>] max_name_len_cde+0xb/0xf
>Mar 7 08:30:01 Blechkasten [<c019836d>] reiser4_max_filename_len+0x1e/0x1f
>Mar 7 08:30:01 Blechkasten [<c01a8842>] is_name_acceptable_common+0x8/0x12
>Mar 7 08:30:01 Blechkasten [<c01a81eb>] reiser4_lookup_name+0x2e/0xf4
>Mar 7 08:30:01 Blechkasten [<c036957f>] skb_copy_and_csum_bits+0x15f/0x29a
>Mar 7 08:30:01 Blechkasten [<c01a89ea>] get_parent_common+0x50/0xbe
>Mar 7 08:30:01 Blechkasten [<c03e38de>] __mutex_lock_slowpath+0x1b7/0x1bf
>Mar 7 08:30:01 Blechkasten [<c036b115>] memcpy_toiovec+0x27/0x4a
>Mar 7 08:30:01 Blechkasten [<c019704f>] reiser4_get_dentry_parent+0x1b/0x1d
>
>
^^^^^^^^^^^^^^^^^^^^^^^^^
oh.. the reiser4_context is missed here.
The attached patch will help.
Thanks,
Edward.
[-- Attachment #2: reiser4-new-export_ops-fix.patch --]
[-- Type: text/x-patch, Size: 1102 bytes --]
The fixup for reiser4-new-export_ops.patch:
Added missed reiser4_{init, exit}_context()
---
linux-2.6.23-mm1/fs/reiser4/export_ops.c | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
--- linux-2.6.23-mm1/fs/reiser4/export_ops.c.orig
+++ linux-2.6.23-mm1/fs/reiser4/export_ops.c
@@ -257,19 +257,28 @@
{
struct inode *dir;
dir_plugin *dplug;
+ struct dentry *result;
+ reiser4_context *ctx;
assert("nikita-3527", child != NULL);
- /* see comment in reiser4_get_dentry() about following assertion */
- assert("nikita-3528", is_in_reiser4_context());
dir = child->d_inode;
assert("nikita-3529", dir != NULL);
+
+ ctx = reiser4_init_context(dir->i_sb);
+ if (IS_ERR(ctx))
+ return (void *)ctx;
+
dplug = inode_dir_plugin(dir);
assert("nikita-3531", ergo(dplug != NULL, dplug->get_parent != NULL));
- if (dplug != NULL)
- return dplug->get_parent(dir);
- else
+
+ if (unlikely(dplug == NULL)) {
+ reiser4_exit_context(ctx);
return ERR_PTR(RETERR(-ENOTDIR));
+ }
+ result = dplug->get_parent(dir);
+ reiser4_exit_context(ctx);
+ return result;
}
/**
prev parent reply other threads:[~2008-03-08 14:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-24 13:38 Problems with nfs in 2.6.24 "Sven Müller"
2008-02-24 23:42 ` Edward Shishkin
[not found] ` <20080225203235.107140@gmx.net>
[not found] ` <47C36B60.1090402@gmail.com>
[not found] ` <20080227144602.220610@gmx.net>
[not found] ` <47C5B875.7020100@gmail.com>
[not found] ` <20080307154338.84630@gmx.net>
2008-03-08 14:18 ` Edward Shishkin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47D2A024.4020702@gmail.com \
--to=edward.shishkin@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hch@lst.de \
--cc=musv@gmx.de \
--cc=reiserfs-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.