static void proc_delete_inode(struct inode *inode)
{
struct proc_dir_entry *de;
+ struct task_struct *tsk;
truncate_inode_pages(&inode->i_data, 0);
- /* Stop tracking associated processes */
- put_pid(PROC_I(inode)->pid);
+ /* Let go of any associated process */
+ tsk = PROC_I(inode)->task;
+ if (tsk)
+ put_task_struct(tsk);
/* Let go of any associated proc directory entry */
de = PROC_I(inode)->pde;
ei = (struct proc_inode *)kmem_cache_alloc(proc_inode_cachep, SLAB_KERNEL);
if (!ei)
return NULL;
- ei->pid = NULL;
- ei->fd = 0;
+ ei->task = NULL;
+ ei->type = 0;
ei->op.proc_get_link = NULL;
ei->pde = NULL;
inode = &ei->vfs_inode;
{
struct inode * root_inode;
- s->s_flags |= MS_NODIRATIME | MS_NOSUID | MS_NOEXEC;
+ s->s_flags |= MS_NODIRATIME;
s->s_blocksize = 1024;
s->s_blocksize_bits = 10;
s->s_magic = PROC_SUPER_MAGIC;