From: David Greaves <david@dgreaves.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jakob Oestergaard <jakob@unthought.net>,
Jan Kasprzak <kas@fi.muni.cz>,
linux-kernel@vger.kernel.org, kruty@fi.muni.cz
Subject: Re: XFS: inode with st_mode == 0
Date: Fri, 14 Jan 2005 18:14:55 +0000 [thread overview]
Message-ID: <41E80C1F.3070905@dgreaves.com> (raw)
In-Reply-To: <20041222182344.GB14586@infradead.org>
Christoph Hellwig wrote:
>>> We have applied these two patches to 2.6.10-rc2, but this
>>>does not help. A few minutes ago I've got the "?----------" file
>>>again from my test script. This time it took >4 hours (it was
>>>about an hour or so without this patch).
>>>
>>>
I'm seeing this problem occasionally too.
I'm running 2.6.10
The patch you provided below can be made to apply but I get:
LD .tmp_vmlinux1
fs/built-in.o(.text+0xa0ed3): In function `linvfs_decode_fh':
: undefined reference to `find_exported_dentry'
I assume that since you say:
> Btw, any chance you could
>try XFS CVS (which is at 2.6.9) + the patch below instead of plain 2.6.9,
>there have been various other fixes in the last months.
>
>
That not all the changes in XFS CVS have made it to 2.6.10?
Is there a 2.6.10 patch that I could apply? Or do you have any other
suggestions.
David
>
>Index: fs/xfs/xfs_vfsops.c
>===================================================================
>RCS file: /cvs/linux-2.6-xfs/fs/xfs/xfs_vfsops.c,v
>retrieving revision 1.459
>diff -u -p -r1.459 xfs_vfsops.c
>--- fs/xfs/xfs_vfsops.c 15 Dec 2004 04:56:58 -0000 1.459
>+++ fs/xfs/xfs_vfsops.c 16 Dec 2004 20:47:22 -0000
>@@ -1581,7 +1581,7 @@ xfs_syncsub(
> }
>
> /*
>- * xfs_vget - called by DMAPI to get vnode from file handle
>+ * xfs_vget - called by DMAPI and NFSD to get vnode from file handle
> */
> STATIC int
> xfs_vget(
>@@ -1623,7 +1623,7 @@ xfs_vget(
> return XFS_ERROR(EIO);
> }
>
>- if (ip->i_d.di_mode == 0 || (igen && (ip->i_d.di_gen != igen))) {
>+ if (ip->i_d.di_mode == 0 || ip->i_d.di_gen != igen) {
> xfs_iput_new(ip, XFS_ILOCK_SHARED);
> *vpp = NULL;
> return XFS_ERROR(ENOENT);
>Index: fs/xfs/linux-2.6/xfs_super.c
>===================================================================
>RCS file: /cvs/linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c,v
>retrieving revision 1.321
>diff -u -p -r1.321 xfs_super.c
>--- fs/xfs/linux-2.6/xfs_super.c 9 Dec 2004 02:41:20 -0000 1.321
>+++ fs/xfs/linux-2.6/xfs_super.c 16 Dec 2004 20:47:23 -0000
>@@ -731,6 +731,39 @@ linvfs_get_dentry(
> return result;
> }
>
>+STATIC struct dentry *
>+linvfs_decode_fh(
>+ struct super_block *sb,
>+ __u32 *fh,
>+ int fh_len,
>+ int fileid_type,
>+ int (*acceptable)(
>+ void *context,
>+ struct dentry *de),
>+ void *context)
>+{
>+ __u32 parent[2];
>+ parent[0] = parent[1] = 0;
>+
>+ if (fh_len < 2 || fileid_type > 2)
>+ return NULL;
>+
>+ if (fileid_type == 2 && fh_len > 2) {
>+ if (fh_len == 3) {
>+ printk(KERN_WARNING
>+ "XFS: detected filehandle without "
>+ "parent inode generation information.");
>+ return ERR_PTR(-ESTALE);
>+ }
>+
>+ parent[0] = fh[2];
>+ parent[1] = fh[3];
>+ }
>+
>+ return find_exported_dentry(sb, fh, parent, acceptable, context);
>+
>+}
>+
> STATIC int
> linvfs_show_options(
> struct seq_file *m,
>@@ -893,6 +926,7 @@ linvfs_get_sb(
>
>
> STATIC struct export_operations linvfs_export_ops = {
>+ .decode_fh = linvfs_decode_fh,
> .get_parent = linvfs_get_parent,
> .get_dentry = linvfs_get_dentry,
> };
>Index: include/linux/fs.h
>===================================================================
>RCS file: /cvs/linux-2.6-xfs/include/linux/fs.h,v
>retrieving revision 1.11
>diff -u -p -r1.11 fs.h
>--- include/linux/fs.h 1 Oct 2004 15:10:15 -0000 1.11
>+++ include/linux/fs.h 16 Dec 2004 20:47:25 -0000
>@@ -1115,6 +1115,10 @@ struct export_operations {
>
> };
>
>+extern struct dentry *
>+find_exported_dentry(struct super_block *sb, void *obj, void *parent,
>+ int (*acceptable)(void *context, struct dentry *de),
>+ void *context);
>
> struct file_system_type {
> const char *name;
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>
>
next prev parent reply other threads:[~2005-01-14 18:16 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-09 12:59 XFS: inode with st_mode == 0 Jan Kasprzak
2004-12-09 13:53 ` Jakob Oestergaard
2004-12-09 14:07 ` Jan Kasprzak
2004-12-09 21:54 ` Christoph Hellwig
2004-12-14 23:40 ` Jakob Oestergaard
2004-12-21 18:43 ` Jan Kasprzak
2004-12-22 8:41 ` Jakob Oestergaard
2004-12-22 18:23 ` Christoph Hellwig
2004-12-23 15:01 ` Jakob Oestergaard
2005-01-04 8:48 ` Jakob Oestergaard
2005-01-05 11:34 ` Christoph Hellwig
2005-01-14 18:14 ` David Greaves [this message]
2005-01-14 18:23 ` Jakob Oestergaard
2005-01-15 2:09 ` Nathan Scott
2005-01-17 0:53 ` Jakob Oestergaard
2005-01-16 13:51 ` Christoph Hellwig
2005-01-17 10:07 ` Jakob Oestergaard
2005-01-17 11:55 ` Jan-Frode Myklebust
2005-01-17 13:48 ` Anders Saaby
2005-01-17 21:31 ` journaled filesystems -- known instability; Was: " Jeffrey Hundstad
2005-01-17 20:54 ` Alan Cox
2005-01-20 22:30 ` Jeffrey E. Hundstad
2005-01-25 12:47 ` Stephen C. Tweedie
2005-01-25 15:09 ` Jeffrey Hundstad
2005-01-25 15:37 ` Stephen C. Tweedie
2005-01-28 20:15 ` Jeffrey E. Hundstad
2005-01-28 21:00 ` Stephen C. Tweedie
2005-01-28 21:06 ` Jeffrey E. Hundstad
2005-01-18 11:45 ` Jan Kasprzak
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=41E80C1F.3070905@dgreaves.com \
--to=david@dgreaves.com \
--cc=hch@infradead.org \
--cc=jakob@unthought.net \
--cc=kas@fi.muni.cz \
--cc=kruty@fi.muni.cz \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox