[GFS2] Set d_ops for root inode
authorRobert S Peterson <rpeterso@redhat.com>
Fri, 5 May 2006 20:29:50 +0000 (16:29 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 5 May 2006 20:29:50 +0000 (16:29 -0400)
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 <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/ops_fstype.c

index d19d987..f252723 100644 (file)
@@ -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;