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

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

vfs: new helper - d_make_root()



d_alloc_root() with iput() in case of allocation failure...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent b48f03b3
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -1440,6 +1440,23 @@ struct dentry * d_alloc_root(struct inode * root_inode)
}
}
EXPORT_SYMBOL(d_alloc_root);
EXPORT_SYMBOL(d_alloc_root);


struct dentry *d_make_root(struct inode *root_inode)
{
	struct dentry *res = NULL;

	if (root_inode) {
		static const struct qstr name = { .name = "/", .len = 1 };

		res = __d_alloc(root_inode->i_sb, &name);
		if (res)
			d_instantiate(res, root_inode);
		else
			iput(root_inode);
	}
	return res;
}
EXPORT_SYMBOL(d_make_root);

static struct dentry * __d_find_any_alias(struct inode *inode)
static struct dentry * __d_find_any_alias(struct inode *inode)
{
{
	struct dentry *alias;
	struct dentry *alias;
+1 −0
Original line number Original line Diff line number Diff line
@@ -249,6 +249,7 @@ extern int d_invalidate(struct dentry *);


/* only used at mount-time */
/* only used at mount-time */
extern struct dentry * d_alloc_root(struct inode *);
extern struct dentry * d_alloc_root(struct inode *);
extern struct dentry * d_make_root(struct inode *);


/* <clickety>-<click> the ramfs-type tree */
/* <clickety>-<click> the ramfs-type tree */
extern void d_genocide(struct dentry *);
extern void d_genocide(struct dentry *);