vfs: d_alloc_root() gone
all callers converted to d_make_root() by now Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -429,3 +429,9 @@ filemap_write_and_wait_range() so that all dirty pages are synced out properly.
|
|||||||
You must also keep in mind that ->fsync() is not called with i_mutex held
|
You must also keep in mind that ->fsync() is not called with i_mutex held
|
||||||
anymore, so if you require i_mutex locking you must make sure to take it and
|
anymore, so if you require i_mutex locking you must make sure to take it and
|
||||||
release it yourself.
|
release it yourself.
|
||||||
|
|
||||||
|
--
|
||||||
|
[mandatory]
|
||||||
|
d_alloc_root() is gone, along with a lot of bugs caused by code
|
||||||
|
misusing it. Replacement: d_make_root(inode). The difference is,
|
||||||
|
d_make_root() drops the reference to inode if dentry allocation fails.
|
||||||
|
24
fs/dcache.c
24
fs/dcache.c
@@ -1443,30 +1443,6 @@ struct dentry *d_instantiate_unique(struct dentry *entry, struct inode *inode)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(d_instantiate_unique);
|
EXPORT_SYMBOL(d_instantiate_unique);
|
||||||
|
|
||||||
/**
|
|
||||||
* d_alloc_root - allocate root dentry
|
|
||||||
* @root_inode: inode to allocate the root for
|
|
||||||
*
|
|
||||||
* Allocate a root ("/") dentry for the inode given. The inode is
|
|
||||||
* instantiated and returned. %NULL is returned if there is insufficient
|
|
||||||
* memory or the inode passed is %NULL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct dentry * d_alloc_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);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(d_alloc_root);
|
|
||||||
|
|
||||||
struct dentry *d_make_root(struct inode *root_inode)
|
struct dentry *d_make_root(struct inode *root_inode)
|
||||||
{
|
{
|
||||||
struct dentry *res = NULL;
|
struct dentry *res = NULL;
|
||||||
|
@@ -222,7 +222,6 @@ extern void shrink_dcache_for_umount(struct super_block *);
|
|||||||
extern int d_invalidate(struct dentry *);
|
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_make_root(struct inode *);
|
extern struct dentry * d_make_root(struct inode *);
|
||||||
|
|
||||||
/* <clickety>-<click> the ramfs-type tree */
|
/* <clickety>-<click> the ramfs-type tree */
|
||||||
|
Reference in New Issue
Block a user