Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

proc: Supply PDE attribute setting accessor functions

Supply accessor functions to set attributes in proc_dir_entry structs.

The following are supplied: proc_set_size() and proc_set_user().

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cc: linuxppc-dev@lists.ozlabs.org
cc: linux-media@vger.kernel.org
cc: netdev@vger.kernel.org
cc: linux-wireless@vger.kernel.org
cc: linux-pci@vger.kernel.org
cc: netfilter-devel@vger.kernel.org
cc: alsa-devel@alsa-project.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

authored by

David Howells and committed by
Al Viro
271a15ea 2f96b8c1

+40 -35
+1 -1
arch/powerpc/kernel/proc_powerpc.c
··· 83 83 &page_map_fops, vdso_data); 84 84 if (!pde) 85 85 return 1; 86 - pde->size = PAGE_SIZE; 86 + proc_set_size(pde, PAGE_SIZE); 87 87 88 88 return 0; 89 89 }
+1 -1
arch/powerpc/platforms/pseries/reconfig.c
··· 452 452 453 453 ent = proc_create("powerpc/ofdt", S_IWUSR, NULL, &ofdt_fops); 454 454 if (ent) 455 - ent->size = 0; 455 + proc_set_size(ent, 0); 456 456 457 457 return 0; 458 458 }
+1 -1
drivers/media/pci/ttpci/av7110_ir.c
··· 375 375 if (av_cnt == 1) { 376 376 e = proc_create("av7110_ir", S_IWUSR, NULL, &av7110_ir_proc_fops); 377 377 if (e) 378 - e->size = 4 + 256 * sizeof(u16); 378 + proc_set_size(e, 4 + 256 * sizeof(u16)); 379 379 } 380 380 381 381 tasklet_init(&av7110->ir.ir_tasklet, av7110_emit_key, (unsigned long) &av7110->ir);
+1 -1
drivers/net/irda/vlsi_ir.c
··· 1678 1678 IRDA_WARNING("%s: failed to create proc entry\n", 1679 1679 __func__); 1680 1680 } else { 1681 - ent->size = 0; 1681 + proc_set_size(ent, 0); 1682 1682 } 1683 1683 idev->proc_entry = ent; 1684 1684 }
+11 -23
drivers/net/wireless/airo.c
··· 4507 4507 airo_entry); 4508 4508 if (!apriv->proc_entry) 4509 4509 goto fail; 4510 - apriv->proc_entry->uid = proc_kuid; 4511 - apriv->proc_entry->gid = proc_kgid; 4510 + proc_set_user(apriv->proc_entry, proc_kuid, proc_kgid); 4512 4511 4513 4512 /* Setup the StatsDelta */ 4514 4513 entry = proc_create_data("StatsDelta", S_IRUGO & proc_perm, 4515 4514 apriv->proc_entry, &proc_statsdelta_ops, dev); 4516 4515 if (!entry) 4517 4516 goto fail_stats_delta; 4518 - entry->uid = proc_kuid; 4519 - entry->gid = proc_kgid; 4517 + proc_set_user(entry, proc_kuid, proc_kgid); 4520 4518 4521 4519 /* Setup the Stats */ 4522 4520 entry = proc_create_data("Stats", S_IRUGO & proc_perm, 4523 4521 apriv->proc_entry, &proc_stats_ops, dev); 4524 4522 if (!entry) 4525 4523 goto fail_stats; 4526 - entry->uid = proc_kuid; 4527 - entry->gid = proc_kgid; 4524 + proc_set_user(entry, proc_kuid, proc_kgid); 4528 4525 4529 4526 /* Setup the Status */ 4530 4527 entry = proc_create_data("Status", S_IRUGO & proc_perm, 4531 4528 apriv->proc_entry, &proc_status_ops, dev); 4532 4529 if (!entry) 4533 4530 goto fail_status; 4534 - entry->uid = proc_kuid; 4535 - entry->gid = proc_kgid; 4531 + proc_set_user(entry, proc_kuid, proc_kgid); 4536 4532 4537 4533 /* Setup the Config */ 4538 4534 entry = proc_create_data("Config", proc_perm, 4539 4535 apriv->proc_entry, &proc_config_ops, dev); 4540 4536 if (!entry) 4541 4537 goto fail_config; 4542 - entry->uid = proc_kuid; 4543 - entry->gid = proc_kgid; 4538 + proc_set_user(entry, proc_kuid, proc_kgid); 4544 4539 4545 4540 /* Setup the SSID */ 4546 4541 entry = proc_create_data("SSID", proc_perm, 4547 4542 apriv->proc_entry, &proc_SSID_ops, dev); 4548 4543 if (!entry) 4549 4544 goto fail_ssid; 4550 - entry->uid = proc_kuid; 4551 - entry->gid = proc_kgid; 4545 + proc_set_user(entry, proc_kuid, proc_kgid); 4552 4546 4553 4547 /* Setup the APList */ 4554 4548 entry = proc_create_data("APList", proc_perm, 4555 4549 apriv->proc_entry, &proc_APList_ops, dev); 4556 4550 if (!entry) 4557 4551 goto fail_aplist; 4558 - entry->uid = proc_kuid; 4559 - entry->gid = proc_kgid; 4552 + proc_set_user(entry, proc_kuid, proc_kgid); 4560 4553 4561 4554 /* Setup the BSSList */ 4562 4555 entry = proc_create_data("BSSList", proc_perm, 4563 4556 apriv->proc_entry, &proc_BSSList_ops, dev); 4564 4557 if (!entry) 4565 4558 goto fail_bsslist; 4566 - entry->uid = proc_kuid; 4567 - entry->gid = proc_kgid; 4559 + proc_set_user(entry, proc_kuid, proc_kgid); 4568 4560 4569 4561 /* Setup the WepKey */ 4570 4562 entry = proc_create_data("WepKey", proc_perm, 4571 4563 apriv->proc_entry, &proc_wepkey_ops, dev); 4572 4564 if (!entry) 4573 4565 goto fail_wepkey; 4574 - entry->uid = proc_kuid; 4575 - entry->gid = proc_kgid; 4576 - 4566 + proc_set_user(entry, proc_kuid, proc_kgid); 4577 4567 return 0; 4578 4568 4579 4569 fail_wepkey: ··· 5685 5695 5686 5696 airo_entry = proc_mkdir_mode("driver/aironet", airo_perm, NULL); 5687 5697 5688 - if (airo_entry) { 5689 - airo_entry->uid = proc_kuid; 5690 - airo_entry->gid = proc_kgid; 5691 - } 5698 + if (airo_entry) 5699 + proc_set_user(airo_entry, proc_kuid, proc_kgid); 5692 5700 5693 5701 for (i = 0; i < 4 && io[i] && irq[i]; i++) { 5694 5702 airo_print_info("", "Trying to configure ISA adapter at irq=%d "
+1 -1
drivers/pci/proc.c
··· 419 419 &proc_bus_pci_operations, dev); 420 420 if (!e) 421 421 return -ENOMEM; 422 - e->size = dev->cfg_size; 422 + proc_set_size(e, dev->cfg_size); 423 423 dev->procent = e; 424 424 425 425 return 0;
+1 -1
drivers/pnp/isapnp/proc.c
··· 105 105 &isapnp_proc_bus_file_operations, dev); 106 106 if (!e) 107 107 return -ENOMEM; 108 - e->size = 256; 108 + proc_set_size(e, 256); 109 109 return 0; 110 110 } 111 111
+1 -1
drivers/zorro/proc.c
··· 139 139 &zorro_autocon[slot]); 140 140 if (!entry) 141 141 return -ENOMEM; 142 - entry->size = sizeof(struct zorro_dev); 142 + proc_set_size(entry, sizeof(struct zorro_dev)); 143 143 return 0; 144 144 } 145 145
+13
fs/proc/generic.c
··· 498 498 return NULL; 499 499 } 500 500 EXPORT_SYMBOL(proc_create_data); 501 + 502 + void proc_set_size(struct proc_dir_entry *de, loff_t size) 503 + { 504 + de->size = size; 505 + } 506 + EXPORT_SYMBOL(proc_set_size); 507 + 508 + void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) 509 + { 510 + de->uid = uid; 511 + de->gid = gid; 512 + } 513 + EXPORT_SYMBOL(proc_set_user); 501 514 502 515 static void free_proc_entry(struct proc_dir_entry *de) 503 516 {
+5
include/linux/proc_fs.h
··· 130 130 extern struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name, 131 131 struct proc_dir_entry *parent); 132 132 133 + extern void proc_set_size(struct proc_dir_entry *, loff_t); 134 + extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t); 135 + 133 136 extern struct file *proc_ns_fget(int fd); 134 137 extern bool proc_ns_inode(struct inode *inode); 135 138 ··· 161 158 struct proc_dir_entry *parent) {return NULL;} 162 159 static inline struct proc_dir_entry *proc_mkdir_mode(const char *name, 163 160 umode_t mode, struct proc_dir_entry *parent) { return NULL; } 161 + static inline void proc_set_size(struct proc_dir_entry *de, loff_t size) {} 162 + static inline void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) {} 164 163 165 164 struct tty_driver; 166 165 static inline void proc_tty_register_driver(struct tty_driver *driver) {};
+1 -1
kernel/configs.c
··· 79 79 if (!entry) 80 80 return -ENOMEM; 81 81 82 - entry->size = kernel_config_data_size; 82 + proc_set_size(entry, kernel_config_data_size); 83 83 84 84 return 0; 85 85 }
+1 -1
kernel/profile.c
··· 600 600 NULL, &proc_profile_operations); 601 601 if (!entry) 602 602 return 0; 603 - entry->size = (1+prof_len) * sizeof(atomic_t); 603 + proc_set_size(entry, (1 + prof_len) * sizeof(atomic_t)); 604 604 hotcpu_notifier(profile_cpu_callback, 0); 605 605 return 0; 606 606 }
+1 -2
net/netfilter/xt_recent.c
··· 401 401 ret = -ENOMEM; 402 402 goto out; 403 403 } 404 - pde->uid = uid; 405 - pde->gid = gid; 404 + proc_set_user(pde, uid, gid); 406 405 #endif 407 406 spin_lock_bh(&recent_lock); 408 407 list_add_tail(&t->list, &recent_net->tables);
+1 -1
sound/core/info.c
··· 970 970 mutex_unlock(&info_mutex); 971 971 return -ENOMEM; 972 972 } 973 - p->size = entry->size; 973 + proc_set_size(p, entry->size); 974 974 } 975 975 entry->p = p; 976 976 if (entry->parent)