[1109] in arla-drinkers
Re: Arla 0.26/27pre4 vs. Linux 2.2.10 on SparcUltra 5
daemon@ATHENA.MIT.EDU (Love)
Fri Aug 27 11:57:26 1999
From owner-arla-drinkers@stacken.kth.se Fri Aug 27 15:57:26 1999
Return-Path: <owner-arla-drinkers@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 17139 invoked from network); 27 Aug 1999 15:57:25 -0000
Received: from unknown (HELO sundance.stacken.kth.se) (130.237.234.41)
by bloom-picayune.mit.edu with SMTP; 27 Aug 1999 15:57:25 -0000
Received: (from majordom@localhost)
by sundance.stacken.kth.se (8.8.8/8.8.8) id RAA25394
for arla-drinkers-list; Fri, 27 Aug 1999 17:47:35 +0200 (MET DST)
Received: from elixir.e.kth.se (elixir.e.kth.se [130.237.48.5])
by sundance.stacken.kth.se (8.8.8/8.8.8) with ESMTP id RAA25390
for <arla-drinkers@stacken.kth.se>; Fri, 27 Aug 1999 17:47:30 +0200 (MET DST)
Received: from hummel.e.kth.se (hummel.e.kth.se [130.237.43.135])
by elixir.e.kth.se (8.9.3/8.9.3) with ESMTP id RAA12836;
Fri, 27 Aug 1999 17:47:28 +0200 (MET DST)
Received: (from lha@localhost)
by hummel.e.kth.se (8.9.3/8.9.3) id RAA08675;
Fri, 27 Aug 1999 17:47:25 +0200 (MET DST)
To: Tobias Grundmann <grundman@Informatik.Uni-Tuebingen.De>
Cc: arla-drinkers@stacken.kth.se, grundman@peanuts.informatik.uni-tuebingen.de
Subject: Re: Arla 0.26/27pre4 vs. Linux 2.2.10 on SparcUltra 5
References: <199908271339.PAA23710@peanuts.informatik.uni-tuebingen.de>
From: Love <lha@stacken.kth.se>
Date: 27 Aug 1999 17:47:23 +0200
In-Reply-To: Tobias Grundmann's message of "Fri, 27 Aug 1999 15:41:04 +0200"
Message-ID: <am3dx52pkk.fsf@hummel.e.kth.se>
Lines: 99
User-Agent: Gnus/5.0700000000000003 (Pterodactyl Gnus v0.91) Emacs/20.2
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: owner-arla-drinkers@stacken.kth.se
Precedence: bulk
Tobias Grundmann <grundman@Informatik.Uni-Tuebingen.De> writes:
> thank you for sending the patch. Maybe I should have better mentioned again
> that I tried the cvs version now where this patch is integrated already. Sorry.
Oh, well.
> The question is should I try to work on this or not? If there will be an
> update soon this would be wasted time.
If you turn on xfs-debugging, do you ever get the logmessage caused by
xfs_syscalls.c: fhget_call()
[...]
XFSDEB(XDEBVFOPS, ("fhget_call: dev: %u inode: %u\n",
fh.dev_index, (unsigned int) fh.inode));
?
> Well my machine panics in xfs_message_installdata after calling
> xfs_fh_to_dentry which returns a defective dentry (IS_ERR(dentry)):
>
> iterator kernel: XFS Panic: xfs_message_installdata failed to lookup
> cache file = 00/01@, errno: -22
Can you try this patch, it might be a workaround for the broken fhopen.
Love
Index: xfs_message.c
===================================================================
RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/linux/xfs_message.c,v
retrieving revision 1.53
diff -u -w -u -w -r1.53 xfs_message.c
--- xfs_message.c 1999/08/21 03:44:30 1.53
+++ xfs_message.c 1999/08/27 15:39:54
@@ -46,7 +46,7 @@
#include <xfs/xfs_fs.h>
#include <xfs/xfs_dev.h>
-RCSID("$Id$");
+RCSID("$Id: xfs_message.c,v 1.53 1999/08/21 03:44:30 map Exp $");
#ifdef LINUX2_1
static void
@@ -222,12 +222,6 @@
#ifndef LINUX2_1
current->fs->pwd->i_count++;
error = open_namei(message->cache_name, 3, 0, &vp, current->fs->pwd);
-#else
- dentry = xfs_fh_to_dentry(&message->cache_handle);
- XFSDEB(XDEBMSG, ("xfs_message_installdata dentry: %p\n",
- dentry));
-#endif /* LINUX2_1 */
-#ifndef LINUX2_1
if (error == 0) {
if (DATA_FROM_XNODE(t)) {
iput(DATA_FROM_XNODE(t));
@@ -242,8 +236,22 @@
memmove(t->rights, message->node.rights, sizeof(t->rights));
t->anonrights = message->node.anonrights;
} else
- printk(KERN_EMERG "XFS Panic: xfs_message_installdata failed to lookup cache file = %s, error = %d\n", message->cache_name, error);
+ printk(KERN_EMERG "XFS Panic: xfs_message_installdata failed to lookup "
+ "cache file = %s, error = %d\n", message->cache_name, error);
#else
+ dentry = xfs_fh_to_dentry(&message->cache_handle);
+ XFSDEB(XDEBMSG, ("xfs_message_installdata dentry: %p\n",
+ dentry));
+ if (IS_ERR(dentry)) {
+ printk(KERN_EMERG "XFS Panic: xfs_message_installdata failed fh_to_dentry = %s, errno: %ld\n",
+ message->cache_name, PTR_ERR(dentry));
+ dentry = open_namei(message->cache_name, 3, 0);
+ if (IS_ERR(dentry)) {
+ printk(KERN_EMERG "XFS Panic: xfs_message_installdata failed open_namei, errno: %ld\n",
+ PTR_ERR(dentry));
+ return PTR_ERR(dentry);
+ }
+ }
if (!IS_ERR(dentry)) {
if (DATA_FROM_XNODE(t)) {
dput(DATA_FROM_XNODE(t));
@@ -259,9 +267,7 @@
memmove(t->id, message->node.id, sizeof(t->id));
memmove(t->rights, message->node.rights, sizeof(t->rights));
t->anonrights = message->node.anonrights;
- } else {
- printk(KERN_EMERG "XFS Panic: xfs_message_installdata failed to lookup cache file = %s, errno: %ld\n", message->cache_name, PTR_ERR(dentry));
- error = ENOTTY; /* XXXXX */
+ error = 0;
}
#endif /* LINUX2_1 */
} else {