devtmpfs: factor out setup part of devtmpfsd()
Factor out the setup part of devtmpfsd() to make it a bit easier to see that we always call setup_done() exactly once (provided of course the kthread is succesfully created). Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Link: https://lore.kernel.org/r/20200115184154.3492-3-linux@rasmusvillemoes.dk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c9d6b287d7
commit
0ff0e95e99
@ -388,7 +388,7 @@ static int handle(const char *name, umode_t mode, kuid_t uid, kgid_t gid,
|
|||||||
return handle_remove(name, dev);
|
return handle_remove(name, dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int devtmpfsd(void *p)
|
static int devtmpfs_setup(void *p)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -400,7 +400,18 @@ static int devtmpfsd(void *p)
|
|||||||
goto out;
|
goto out;
|
||||||
ksys_chdir("/.."); /* will traverse into overmounted root */
|
ksys_chdir("/.."); /* will traverse into overmounted root */
|
||||||
ksys_chroot(".");
|
ksys_chroot(".");
|
||||||
|
out:
|
||||||
|
*(int *)p = err;
|
||||||
complete(&setup_done);
|
complete(&setup_done);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int devtmpfsd(void *p)
|
||||||
|
{
|
||||||
|
int err = devtmpfs_setup(p);
|
||||||
|
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
while (1) {
|
while (1) {
|
||||||
spin_lock(&req_lock);
|
spin_lock(&req_lock);
|
||||||
while (requests) {
|
while (requests) {
|
||||||
@ -421,10 +432,6 @@ static int devtmpfsd(void *p)
|
|||||||
schedule();
|
schedule();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
out:
|
|
||||||
*(int *)p = err;
|
|
||||||
complete(&setup_done);
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user