diff options
| author | David S. Miller <davem@davemloft.net> | 2016-01-13 00:21:27 -0500 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-01-13 00:21:27 -0500 | 
| commit | ddb5388ffd0ad75d07e7b78181a0b579824ba6f0 (patch) | |
| tree | be1e2bd103c69d7bbace3fffd97bc3d714bbc3d7 /kernel/bpf/inode.c | |
| parent | ccdf6ce6a8dba374668ae9b4d763e19903611c38 (diff) | |
| parent | 67990608c8b95d2b8ccc29932376ae73d5818727 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
Diffstat (limited to 'kernel/bpf/inode.c')
| -rw-r--r-- | kernel/bpf/inode.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c index 5a8a797d50b7..f2ece3c174a5 100644 --- a/kernel/bpf/inode.c +++ b/kernel/bpf/inode.c @@ -187,11 +187,31 @@ static int bpf_mkobj(struct inode *dir, struct dentry *dentry, umode_t mode,  	}  } +static int bpf_link(struct dentry *old_dentry, struct inode *dir, +		    struct dentry *new_dentry) +{ +	if (bpf_dname_reserved(new_dentry)) +		return -EPERM; + +	return simple_link(old_dentry, dir, new_dentry); +} + +static int bpf_rename(struct inode *old_dir, struct dentry *old_dentry, +		      struct inode *new_dir, struct dentry *new_dentry) +{ +	if (bpf_dname_reserved(new_dentry)) +		return -EPERM; + +	return simple_rename(old_dir, old_dentry, new_dir, new_dentry); +} +  static const struct inode_operations bpf_dir_iops = {  	.lookup		= simple_lookup,  	.mknod		= bpf_mkobj,  	.mkdir		= bpf_mkdir,  	.rmdir		= simple_rmdir, +	.rename		= bpf_rename, +	.link		= bpf_link,  	.unlink		= simple_unlink,  };  | 
