<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:΢ÈíÑźÚ
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
I have tried this patch, And problem resolved!<BR>
Thank you for your help!<BR>
<BR> <BR>
<DIV>
> Date: Mon, 28 Nov 2011 06:19:47 -0500<BR>> From: hch@infradead.org<BR>> To: ygq51@hotmail.com<BR>> Subject: Re: xfs: validate inode numbers in file handles correctly<BR>> CC: linux-xfs@oss.sgi.com; pengxihan@gmail.com<BR>> <BR>> Guoquan and hank,<BR>> <BR>> are you using 32-bit or 64-bit kernels? I just noticed we have a<BR>> problem with exporting 64-bit inodes on 32-bit kernel because the<BR>> VFS i_ino field is just 32-bits long. The patch below would fix<BR>> that issue.<BR>> <BR>> --- xfs.orig/fs/xfs/linux-2.6/xfs_export.c 2011-11-28 12:11:08.923630697 +0100<BR>> +++ xfs/fs/xfs/linux-2.6/xfs_export.c 2011-11-28 12:13:21.766244360 +0100<BR>> @@ -61,6 +61,8 @@ xfs_fs_encode_fh(<BR>> struct fid *fid = (struct fid *)fh;<BR>> struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fh;<BR>> struct inode *inode = dentry->d_inode;<BR>> + struct inode *parent;<BR>> + struct xfs_inode *ip = XFS_I(inode);<BR>> int fileid_
type;<BR>> int len;<BR>> <BR>> @@ -98,22 +100,24 @@ xfs_fs_encode_fh(<BR>> switch (fileid_type) {<BR>> case FILEID_INO32_GEN_PARENT:<BR>> spin_lock(&dentry->d_lock);<BR>> - fid->i32.parent_ino = dentry->d_parent->d_inode->i_ino;<BR>> - fid->i32.parent_gen = dentry->d_parent->d_inode->i_generation;<BR>> + parent = dentry->d_parent->d_inode;<BR>> + fid->i32.parent_ino = XFS_I(parent)->i_ino;<BR>> + fid->i32.parent_gen = parent->i_generation;<BR>> spin_unlock(&dentry->d_lock);<BR>> /*FALLTHRU*/<BR>> case FILEID_INO32_GEN:<BR>> - fid->i32.ino = inode->i_ino;<BR>> + fid->i32.ino = ip->i_ino;<BR>> fid->i32.gen = inode->i_generation;<BR>> break;<BR>> case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG:<BR>> spin_lock(&dentry->d_lock);<BR>> - fid64->parent_ino = dentry->d_parent->d_inode->i_ino;<BR>> - fid64->parent_gen =
dentry->d_parent->d_inode->i_generation;<BR>> + parent = dentry->d_parent->d_inode;<BR>> + fid64->parent_ino = XFS_I(parent)->i_ino;<BR>> + fid64->parent_gen = parent->i_generation;<BR>> spin_unlock(&dentry->d_lock);<BR>> /*FALLTHRU*/<BR>> case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG:<BR>> - fid64->ino = inode->i_ino;<BR>> + fid64->ino = ip->i_ino;<BR>> fid64->gen = inode->i_generation;<BR>> break;<BR>> }<BR>> <BR>> _______________________________________________<BR>> xfs mailing list<BR>> xfs@oss.sgi.com<BR>> http://oss.sgi.com/mailman/listinfo/xfs<BR></DIV>                                            </div></body>
</html>