Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a129880d authored by Al Viro's avatar Al Viro
Browse files

switch affs



either d_op instance would work for root, actually...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d463a0c4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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)
+1 −2
Original line number Diff line number Diff line
@@ -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,
};
@@ -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;
}
+5 −1
Original line number Diff line number Diff line
@@ -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;