diff options
author | 2013-10-01 16:44:54 +0200 | |
---|---|---|
committer | 2013-10-24 23:41:37 -0400 | |
commit | b70a80e7a133a0c86f2fa078e7c144597c516415 (patch) | |
tree | 378dbeeafc1510fb326eda10e1f48085be098f6c /include/linux/dcache.h | |
parent | move taking vfsmount_lock down into prepend_path() (diff) | |
download | linux-b70a80e7a133a0c86f2fa078e7c144597c516415.tar.gz linux-b70a80e7a133a0c86f2fa078e7c144597c516415.tar.bz2 linux-b70a80e7a133a0c86f2fa078e7c144597c516415.zip |
vfs: introduce d_instantiate_no_diralias()
...which just returns -EBUSY if a directory alias would be created.
This is to be used by fuse mkdir to make sure that a buggy or malicious
userspace filesystem doesn't do anything nasty. Previously fuse used a
private mutex for this purpose, which can now go away.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'include/linux/dcache.h')
-rw-r--r-- | include/linux/dcache.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 59066e0b4ff1..716c3760ee39 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -224,6 +224,7 @@ static inline int dname_external(const struct dentry *dentry) extern void d_instantiate(struct dentry *, struct inode *); extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *); extern struct dentry * d_materialise_unique(struct dentry *, struct inode *); +extern int d_instantiate_no_diralias(struct dentry *, struct inode *); extern void __d_drop(struct dentry *dentry); extern void d_drop(struct dentry *dentry); extern void d_delete(struct dentry *); |