summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/bpf/inode.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c
index ed13645bd80c..76efe9a183f5 100644
--- a/kernel/bpf/inode.c
+++ b/kernel/bpf/inode.c
@@ -295,6 +295,15 @@ static const struct file_operations bpffs_map_fops = {
295 .release = bpffs_map_release, 295 .release = bpffs_map_release,
296}; 296};
297 297
298static int bpffs_obj_open(struct inode *inode, struct file *file)
299{
300 return -EIO;
301}
302
303static const struct file_operations bpffs_obj_fops = {
304 .open = bpffs_obj_open,
305};
306
298static int bpf_mkobj_ops(struct dentry *dentry, umode_t mode, void *raw, 307static int bpf_mkobj_ops(struct dentry *dentry, umode_t mode, void *raw,
299 const struct inode_operations *iops, 308 const struct inode_operations *iops,
300 const struct file_operations *fops) 309 const struct file_operations *fops)
@@ -314,7 +323,8 @@ static int bpf_mkobj_ops(struct dentry *dentry, umode_t mode, void *raw,
314 323
315static int bpf_mkprog(struct dentry *dentry, umode_t mode, void *arg) 324static int bpf_mkprog(struct dentry *dentry, umode_t mode, void *arg)
316{ 325{
317 return bpf_mkobj_ops(dentry, mode, arg, &bpf_prog_iops, NULL); 326 return bpf_mkobj_ops(dentry, mode, arg, &bpf_prog_iops,
327 &bpffs_obj_fops);
318} 328}
319 329
320static int bpf_mkmap(struct dentry *dentry, umode_t mode, void *arg) 330static int bpf_mkmap(struct dentry *dentry, umode_t mode, void *arg)
@@ -322,7 +332,7 @@ static int bpf_mkmap(struct dentry *dentry, umode_t mode, void *arg)
322 struct bpf_map *map = arg; 332 struct bpf_map *map = arg;
323 333
324 return bpf_mkobj_ops(dentry, mode, arg, &bpf_map_iops, 334 return bpf_mkobj_ops(dentry, mode, arg, &bpf_map_iops,
325 map->btf ? &bpffs_map_fops : NULL); 335 map->btf ? &bpffs_map_fops : &bpffs_obj_fops);
326} 336}
327 337
328static struct dentry * 338static struct dentry *