Loading Documentation/filesystems/porting +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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. fs/dcache.c +0 −24 Original line number Original line Diff line number Diff line Loading @@ -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; Loading include/linux/dcache.h +0 −1 Original line number Original line Diff line number Diff line Loading @@ -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 */ Loading Loading
Documentation/filesystems/porting +6 −0 Original line number Original line Diff line number Diff line Loading @@ -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.
fs/dcache.c +0 −24 Original line number Original line Diff line number Diff line Loading @@ -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; Loading
include/linux/dcache.h +0 −1 Original line number Original line Diff line number Diff line Loading @@ -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 */ Loading