设为首页 加入收藏

TOP

内核进程的复制(十二)
2012-11-01 15:47:27 来源: 作者: 【 】 浏览:3017
Tags:内核 进程 复制

  
  十二,最后
  
  [cpp]
  
  total_forks++;
  
  spin_unlock(&current->sighand->siglock);
  
  write_unlock_irq(&tasklist_lock);
  
  proc_fork_connector(p);
  
  cgroup_post_fork(p);
  
  return p;
  
  bad_fork_free_pid:
  
  if (pid != &init_struct_pid)
  
  free_pid(pid);
  
  bad_fork_cleanup_namespaces:
  
  exit_task_namespaces(p);
  
  bad_fork_cleanup_keys:
  
  exit_keys(p);
  
  bad_fork_cleanup_mm:
  
  if (p->mm)
  
  mmput(p->mm);
  
  bad_fork_cleanup_signal:
  
  cleanup_signal(p);
  
  bad_fork_cleanup_sighand:
  
  __cleanup_sighand(p->sighand);
  
  bad_fork_cleanup_fs:
  
  exit_fs(p); /* blocking */
  
  bad_fork_cleanup_files:
  
  exit_files(p); /* blocking */
  
  bad_fork_cleanup_semundo:
  
  exit_sem(p);
  
  bad_fork_cleanup_audit:
  
  audit_free(p);
  
  bad_fork_cleanup_security:
  
  security_task_free(p);
  
  bad_fork_cleanup_policy:
  
  #ifdef CONFIG_NUMA
  
  mpol_free(p->mempolicy);
  
  bad_fork_cleanup_cgroup:
  
  #endif
  
  cgroup_exit(p, cgroup_callbacks_done);
  
  delayacct_tsk_free(p);
  
  if (p->binfmt)
  
  module_put(p->binfmt->module);
  
  bad_fork_cleanup_put_domain:
  
  module_put(task_thread_info(p)->exec_domain->module);
  
  bad_fork_cleanup_count:
  
  put_group_info(p->group_info);
  
  atomic_dec(&p->user->processes);
  
  free_uid(p->user);
  
  bad_fork_free:
  
  free_task(p);
  
  fork_out:
  
  return ERR_PTR(retval);
  
  }

            

首页 上一页 9 10 11 12 13 14 15 下一页 尾页 12/16/16
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C/C++学习指针一些事 下一篇C/C++学习之++i 和 i++..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: