[Cluster-devel] [GFS2 Patch] pass formal ino in do_filldir_main

Wendy Cheng wcheng at redhat.com
Wed Feb 7 04:51:32 UTC 2007


Lookup failure found in '07 NFS connectathon. The nfsd is in the middle
of readdirplus procedure call where it builds the file handles
associated with the directory. GFS2 lookup code has been expected the
first 64 bit of gfs2 inode number (formal inode number) but
do_filldir_main() wrongly passes on-disk address inode number (no_addr).
This patch fixes this.

Signed-off-by: S. Wendy Cheng <wcheng at redhat.com>

dir.c |    3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)

--- linux-git/fs/gfs2/dir.c	2007-02-06 01:07:26.000000000 -0500
+++ linux/fs/gfs2/dir.c	2007-02-06 20:50:16.000000000 -0500
@@ -1241,8 +1241,9 @@ static int do_filldir_main(struct gfs2_i
 
 		error = filldir(opaque, (const char *)(dent + 1),
 				be16_to_cpu(dent->de_name_len),
-				off, be64_to_cpu(dent->de_inum.no_addr),
+				off, be64_to_cpu(dent->de_inum.no_formal_ino),
 				be16_to_cpu(dent->de_type));
+		
 		if (error)
 			return 1;
 





More information about the Cluster-devel mailing list