Re: New proc entry under /proc/[pid]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



yes you are right, it gives NULL for <pid> directories under proc but
I tried changing pid to something else, say /proc/sys and it works.
Looks like handling of pid directories is entirely different. I didn't
get time to explore on that, will have to dig more into this.

Rajat

On Wed, Jan 12, 2011 at 12:50 AM, Mauro Romano Trajber
<trajber@xxxxxxxxx> wrote:
> Following your recommendations parent->pde always returns NULL. You know why
> ?
> // code...
> err = kern_path("/proc/1/", LOOKUP_FOLLOW, &path);
> if (err) {
> return err;
> }
> struct proc_inode *parent = PROC_I(path.dentry->d_inode);
> struct proc_dir_entry *parent_dir = parent->pde;
> if (parent_dir == NULL) {
> printk("parent_dir is NULL\n");
> } else {
> create_proc_entry("SOMEFile", 0644, parent_dir);
> }
>
> Mauro!
> On Tue, Jan 11, 2011 at 4:39 AM, Rajat Sharma <fs.rajat@xxxxxxxxx> wrote:
>>
>> Try this:
>> 1. do a path_lookup for parent proc dir e.g. /proc/1234 and get its inode.
>> 2. get proc_inode structure for parent from vfs inode like this:
>>          sruct proc_inode *parent = PROC_I(inode).
>>    PROC_I is defined in proc_fs.h
>> 3. get parent proc_dir_entry object:
>>          struct proc_dir_entry *parent_dir = parent->pde;
>> 4. now you can call:
>>          create_proc_entry("SOME file", 0644, parent_dir);
>> 5. or you can create a directory if you want:
>>          proc_mkdir("your dir", parent_dir);
>>
>> hope this helps.
>>
>> Rajat
>>
>> On Tue, Jan 11, 2011 at 12:19 AM, Mauro Romano Trajber
>> <trajber@xxxxxxxxx> wrote:
>> > I think I found:
>> > static const struct pid_entry tgid_base_stuff[] at fs/proc/base.c has
>> > all
>> > /proc/[pid] entries.
>> > But unfortunately it does not use create_proc_entry function, and I'm
>> > trying
>> > to create a new syscall that creates a new proc_entry for the caller
>> > process.
>> > Adding a new element in tgid_base_stuff[] makes the things more
>> > complicated
>> > than simply call a create_proc_entry function.
>> > Is there another way to do it ?
>> > Mauro Romano Trajber
>> >
>> > On Mon, Jan 10, 2011 at 3:18 PM, Mauro Romano Trajber
>> > <trajber@xxxxxxxxx>
>> > wrote:
>> >>
>> >> How can I create a new proc entry under /proc/[pid] ?
>> >> I using create_proc_entry("SOME_FILE", 0644, NULL /* here goes the pid
>> >> proc entry */);
>> >> Is there any way to get PID directory as a parent proc entry ? How ?
>> >> Thanks,
>> >> Mauro
>> >
>> > _______________________________________________
>> > Kernelnewbies mailing list
>> > Kernelnewbies@xxxxxxxxxxxxxxxxx
>> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>> >
>> >
>
>

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux