Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
c4144670
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c4144670
编写于
10月 02, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
kill daemonize()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
02232f8d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
1 addition
and
128 deletion
+1
-128
drivers/staging/gdm72xx/gdm_usb.c
drivers/staging/gdm72xx/gdm_usb.c
+1
-3
fs/file.c
fs/file.c
+0
-6
fs/fs_struct.c
fs/fs_struct.c
+0
-24
include/linux/fdtable.h
include/linux/fdtable.h
+0
-1
include/linux/fs_struct.h
include/linux/fs_struct.h
+0
-1
include/linux/sched.h
include/linux/sched.h
+0
-1
kernel/exit.c
kernel/exit.c
+0
-92
未找到文件。
drivers/staging/gdm72xx/gdm_usb.c
浏览文件 @
c4144670
...
...
@@ -701,8 +701,6 @@ static int k_mode_thread(void *arg)
unsigned
long
flags
,
flags2
,
expire
;
int
ret
;
daemonize
(
"k_mode_wimax"
);
while
(
!
k_mode_stop
)
{
spin_lock_irqsave
(
&
k_lock
,
flags2
);
...
...
@@ -764,7 +762,7 @@ static struct usb_driver gdm_usb_driver = {
static
int
__init
usb_gdm_wimax_init
(
void
)
{
#ifdef CONFIG_WIMAX_GDM72XX_K_MODE
kthread_run
(
k_mode_thread
,
NULL
,
"
WiMax_thread
"
);
kthread_run
(
k_mode_thread
,
NULL
,
"
k_mode_wimax
"
);
#endif
/* CONFIG_WIMAX_GDM72XX_K_MODE */
return
usb_register
(
&
gdm_usb_driver
);
}
...
...
fs/file.c
浏览文件 @
c4144670
...
...
@@ -519,12 +519,6 @@ struct files_struct init_files = {
.
file_lock
=
__SPIN_LOCK_UNLOCKED
(
init_task
.
file_lock
),
};
void
daemonize_descriptors
(
void
)
{
atomic_inc
(
&
init_files
.
count
);
reset_files_struct
(
&
init_files
);
}
/*
* allocate a file descriptor, mark it busy.
*/
...
...
fs/fs_struct.c
浏览文件 @
c4144670
...
...
@@ -164,27 +164,3 @@ struct fs_struct init_fs = {
.
seq
=
SEQCNT_ZERO
,
.
umask
=
0022
,
};
void
daemonize_fs_struct
(
void
)
{
struct
fs_struct
*
fs
=
current
->
fs
;
if
(
fs
)
{
int
kill
;
task_lock
(
current
);
spin_lock
(
&
init_fs
.
lock
);
init_fs
.
users
++
;
spin_unlock
(
&
init_fs
.
lock
);
spin_lock
(
&
fs
->
lock
);
current
->
fs
=
&
init_fs
;
kill
=
!--
fs
->
users
;
spin_unlock
(
&
fs
->
lock
);
task_unlock
(
current
);
if
(
kill
)
free_fs_struct
(
fs
);
}
}
include/linux/fdtable.h
浏览文件 @
c4144670
...
...
@@ -95,7 +95,6 @@ struct task_struct;
struct
files_struct
*
get_files_struct
(
struct
task_struct
*
);
void
put_files_struct
(
struct
files_struct
*
fs
);
void
reset_files_struct
(
struct
files_struct
*
);
void
daemonize_descriptors
(
void
);
int
unshare_files
(
struct
files_struct
**
);
struct
files_struct
*
dup_fd
(
struct
files_struct
*
,
int
*
);
void
do_close_on_exec
(
struct
files_struct
*
);
...
...
include/linux/fs_struct.h
浏览文件 @
c4144670
...
...
@@ -21,7 +21,6 @@ extern void set_fs_root(struct fs_struct *, struct path *);
extern
void
set_fs_pwd
(
struct
fs_struct
*
,
struct
path
*
);
extern
struct
fs_struct
*
copy_fs_struct
(
struct
fs_struct
*
);
extern
void
free_fs_struct
(
struct
fs_struct
*
);
extern
void
daemonize_fs_struct
(
void
);
extern
int
unshare_fs_struct
(
void
);
static
inline
void
get_fs_root
(
struct
fs_struct
*
fs
,
struct
path
*
root
)
...
...
include/linux/sched.h
浏览文件 @
c4144670
...
...
@@ -2283,7 +2283,6 @@ extern void flush_itimer_signals(void);
extern
void
do_group_exit
(
int
);
extern
void
daemonize
(
const
char
*
,
...);
extern
int
allow_signal
(
int
);
extern
int
disallow_signal
(
int
);
...
...
kernel/exit.c
浏览文件 @
c4144670
...
...
@@ -322,43 +322,6 @@ kill_orphaned_pgrp(struct task_struct *tsk, struct task_struct *parent)
}
}
/**
* reparent_to_kthreadd - Reparent the calling kernel thread to kthreadd
*
* If a kernel thread is launched as a result of a system call, or if
* it ever exits, it should generally reparent itself to kthreadd so it
* isn't in the way of other processes and is correctly cleaned up on exit.
*
* The various task state such as scheduling policy and priority may have
* been inherited from a user process, so we reset them to sane values here.
*
* NOTE that reparent_to_kthreadd() gives the caller full capabilities.
*/
static
void
reparent_to_kthreadd
(
void
)
{
write_lock_irq
(
&
tasklist_lock
);
ptrace_unlink
(
current
);
/* Reparent to init */
current
->
real_parent
=
current
->
parent
=
kthreadd_task
;
list_move_tail
(
&
current
->
sibling
,
&
current
->
real_parent
->
children
);
/* Set the exit signal to SIGCHLD so we signal init on exit */
current
->
exit_signal
=
SIGCHLD
;
if
(
task_nice
(
current
)
<
0
)
set_user_nice
(
current
,
0
);
/* cpus_allowed? */
/* rt_priority? */
/* signals? */
memcpy
(
current
->
signal
->
rlim
,
init_task
.
signal
->
rlim
,
sizeof
(
current
->
signal
->
rlim
));
atomic_inc
(
&
init_cred
.
usage
);
commit_creds
(
&
init_cred
);
write_unlock_irq
(
&
tasklist_lock
);
}
void
__set_special_pids
(
struct
pid
*
pid
)
{
struct
task_struct
*
curr
=
current
->
group_leader
;
...
...
@@ -370,13 +333,6 @@ void __set_special_pids(struct pid *pid)
change_pid
(
curr
,
PIDTYPE_PGID
,
pid
);
}
static
void
set_special_pids
(
struct
pid
*
pid
)
{
write_lock_irq
(
&
tasklist_lock
);
__set_special_pids
(
pid
);
write_unlock_irq
(
&
tasklist_lock
);
}
/*
* Let kernel threads use this to say that they allow a certain signal.
* Must not be used if kthread was cloned with CLONE_SIGHAND.
...
...
@@ -416,54 +372,6 @@ int disallow_signal(int sig)
EXPORT_SYMBOL
(
disallow_signal
);
/*
* Put all the gunge required to become a kernel thread without
* attached user resources in one place where it belongs.
*/
void
daemonize
(
const
char
*
name
,
...)
{
va_list
args
;
sigset_t
blocked
;
va_start
(
args
,
name
);
vsnprintf
(
current
->
comm
,
sizeof
(
current
->
comm
),
name
,
args
);
va_end
(
args
);
/*
* If we were started as result of loading a module, close all of the
* user space pages. We don't need them, and if we didn't close them
* they would be locked into memory.
*/
exit_mm
(
current
);
/*
* We don't want to get frozen, in case system-wide hibernation
* or suspend transition begins right now.
*/
current
->
flags
|=
(
PF_NOFREEZE
|
PF_KTHREAD
);
if
(
current
->
nsproxy
!=
&
init_nsproxy
)
{
get_nsproxy
(
&
init_nsproxy
);
switch_task_namespaces
(
current
,
&
init_nsproxy
);
}
set_special_pids
(
&
init_struct_pid
);
proc_clear_tty
(
current
);
/* Block and flush all signals */
sigfillset
(
&
blocked
);
sigprocmask
(
SIG_BLOCK
,
&
blocked
,
NULL
);
flush_signals
(
current
);
/* Become as one with the init task */
daemonize_fs_struct
();
daemonize_descriptors
();
reparent_to_kthreadd
();
}
EXPORT_SYMBOL
(
daemonize
);
#ifdef CONFIG_MM_OWNER
/*
* A task is exiting. If it owned this mm, find a new owner for the mm.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录