]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
unexport d_alloc_pseudo()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 16 Mar 2019 02:58:11 +0000 (22:58 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2019 23:20:46 +0000 (19:20 -0400)
No modular uses since introducion of alloc_file_pseudo(),
and the only non-modular user not in alloc_file_pseudo()
had actually been wrong - should've been d_alloc_anon().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Documentation/filesystems/porting
fs/dcache.c
fs/internal.h
include/linux/dcache.h

index a60fa516d4cbb1eacdd00cae0008645c10d403cf..7ed8188e70478f518c950dab235fbf3c1fbc7e6c 100644 (file)
@@ -643,3 +643,8 @@ in your dentry operations instead.
        DCACHE_RCUACCESS is gone; having an RCU delay on dentry freeing is the
        default.  DCACHE_NORCU opts out, and only d_alloc_pseudo() has any
        business doing so.
+--
+[mandatory]
+       d_alloc_pseudo() is internal-only; uses outside of alloc_file_pseudo() are
+       very suspect (and won't work in modules).  Such uses are very likely to
+       be misspelled d_alloc_anon().
index c663c602f9ef97dc74939a8b6ebba95a1b66a7ec..6dd58ced8236ce2d0c367a37e559c4e07e9e9172 100644 (file)
@@ -1742,6 +1742,9 @@ struct dentry *d_alloc_cursor(struct dentry * parent)
  * never be anyone's children or parents.  Unlike all other
  * dentries, these will not have RCU delay between dropping the
  * last reference and freeing them.
+ *
+ * The only user is alloc_file_pseudo() and that's what should
+ * be considered a public interface.  Don't use directly.
  */
 struct dentry *d_alloc_pseudo(struct super_block *sb, const struct qstr *name)
 {
@@ -1750,7 +1753,6 @@ struct dentry *d_alloc_pseudo(struct super_block *sb, const struct qstr *name)
                dentry->d_flags |= DCACHE_NORCU;
        return dentry;
 }
-EXPORT_SYMBOL(d_alloc_pseudo);
 
 struct dentry *d_alloc_name(struct dentry *parent, const char *name)
 {
index 2e7362837a6ea31e2910c0334600363c4685a2df..8102032432cf0befb024bb3fd966e0b9de3dca4e 100644 (file)
@@ -155,6 +155,7 @@ extern struct dentry *__d_alloc(struct super_block *, const struct qstr *);
 extern int d_set_mounted(struct dentry *dentry);
 extern long prune_dcache_sb(struct super_block *sb, struct shrink_control *sc);
 extern struct dentry *d_alloc_cursor(struct dentry *);
+extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
 
 /*
  * read_write.c
index 6e1e8e6602c6b3a559720864f622101d4aeaf58b..2f044e232e1bde14a1e9bc6534e3b6baeddabe04 100644 (file)
@@ -235,7 +235,6 @@ extern void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op
 /* allocate/de-allocate */
 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
 extern struct dentry * d_alloc_anon(struct super_block *);
-extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
 extern struct dentry * d_alloc_parallel(struct dentry *, const struct qstr *,
                                        wait_queue_head_t *);
 extern struct dentry * d_splice_alias(struct inode *, struct dentry *);