Skip to content

Commit

Permalink
switch affs
Browse files Browse the repository at this point in the history
either d_op instance would work for root, actually...

Signed-off-by: Al Viro <[email protected]>
  • Loading branch information
Al Viro committed Jan 13, 2011
1 parent d463a0c commit a129880
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
1 change: 1 addition & 0 deletions fs/affs/affs.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ extern const struct address_space_operations affs_aops;
extern const struct address_space_operations affs_aops_ofs;

extern const struct dentry_operations affs_dentry_operations;
extern const struct dentry_operations affs_intl_dentry_operations;

static inline void
affs_set_blocksize(struct super_block *sb, int size)
Expand Down
3 changes: 1 addition & 2 deletions fs/affs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const struct dentry_operations affs_dentry_operations = {
.d_compare = affs_compare_dentry,
};

static const struct dentry_operations affs_intl_dentry_operations = {
const struct dentry_operations affs_intl_dentry_operations = {
.d_hash = affs_intl_hash_dentry,
.d_compare = affs_intl_compare_dentry,
};
Expand Down Expand Up @@ -240,7 +240,6 @@ affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
if (IS_ERR(inode))
return ERR_CAST(inode);
}
d_set_d_op(dentry, AFFS_SB(sb)->s_flags & SF_INTL ? &affs_intl_dentry_operations : &affs_dentry_operations);
d_add(dentry, inode);
return NULL;
}
Expand Down
6 changes: 5 additions & 1 deletion fs/affs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -477,12 +477,16 @@ static int affs_fill_super(struct super_block *sb, void *data, int silent)
goto out_error_noinode;
}

if (AFFS_SB(sb)->s_flags & SF_INTL)
sb->s_d_op = &affs_intl_dentry_operations;
else
sb->s_d_op = &affs_dentry_operations;

sb->s_root = d_alloc_root(root_inode);
if (!sb->s_root) {
printk(KERN_ERR "AFFS: Get root inode failed\n");
goto out_error;
}
d_set_d_op(sb->s_root, &affs_dentry_operations);

pr_debug("AFFS: s_flags=%lX\n",sb->s_flags);
return 0;
Expand Down

0 comments on commit a129880

Please sign in to comment.