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