Commit 5bb76af1 authored by Robert S Peterson's avatar Robert S Peterson Committed by Steven Whitehouse

[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: default avatarRobert S Peterson <rpeterso@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 97a35d1e
...@@ -40,6 +40,8 @@ ...@@ -40,6 +40,8 @@
#define DO 0 #define DO 0
#define UNDO 1 #define UNDO 1
extern struct dentry_operations gfs2_dops;
static struct gfs2_sbd *init_sbd(struct super_block *sb) static struct gfs2_sbd *init_sbd(struct super_block *sb)
{ {
struct gfs2_sbd *sdp; struct gfs2_sbd *sdp;
...@@ -357,6 +359,7 @@ static int init_sb(struct gfs2_sbd *sdp, int silent, int undo) ...@@ -357,6 +359,7 @@ static int init_sb(struct gfs2_sbd *sdp, int silent, int undo)
error = -ENOMEM; error = -ENOMEM;
iput(inode); iput(inode);
} }
sb->s_root->d_op = &gfs2_dops;
out: out:
gfs2_glock_dq_uninit(&sb_gh); gfs2_glock_dq_uninit(&sb_gh);
return error; return error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment