From: Robert S Peterson Date: Fri, 5 May 2006 20:29:50 +0000 (-0400) Subject: [GFS2] Set d_ops for root inode X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=5bb76af1e089ac186c15c6aa792340d22b63d4b4;p=deliverable%2Flinux.git [GFS2] Set d_ops for root inode Well, I managed to track down the bug in gfs2 that was causing my grief. Below is a patch for the problem. Please incorporate as you see fit. Or should I say: as you see git. The problem was basically that you never set d_ops for the root inode, so the wrong hash algorithm was being used. But only for the root directory. Turns out that if I used subdirectories, it used the proper hash and my files were found just fine. Signed-off-by: Robert S Peterson Signed-off-by: Steven Whitehouse --- diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index d19d98766aa5..f252723b37da 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -40,6 +40,8 @@ #define DO 0 #define UNDO 1 +extern struct dentry_operations gfs2_dops; + static struct gfs2_sbd *init_sbd(struct super_block *sb) { struct gfs2_sbd *sdp; @@ -357,6 +359,7 @@ static int init_sb(struct gfs2_sbd *sdp, int silent, int undo) error = -ENOMEM; iput(inode); } + sb->s_root->d_op = &gfs2_dops; out: gfs2_glock_dq_uninit(&sb_gh); return error;