diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-06-18 03:13:50 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-06-18 03:13:50 +0200 |
commit | 58dc03cec0df3cf569f73ea90d71f17e6a3dc84d (patch) | |
tree | 89b5471097c59b358f82c1f7d1336ccaece19bc2 | |
parent | b48078c12cdf0e3b718e38102b7548c14bed33a4 (diff) |
kernel: do not inherit Proc.dot (current working directory) in kproc()
making sure to close the dot in every kproc appears repetitive,
so instead stop inheriting the dot in kproc() as this is usually
never what you wanted in the first place.
-rw-r--r-- | sys/src/9/port/proc.c | 2 | ||||
-rw-r--r-- | sys/src/9/port/segment.c | 4 | ||||
-rw-r--r-- | sys/src/9/port/swap.c | 4 | ||||
-rw-r--r-- | sys/src/9/zynq/screen.c | 8 |
4 files changed, 1 insertions, 17 deletions
diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c index 766ab52b9..eadca93ec 100644 --- a/sys/src/9/port/proc.c +++ b/sys/src/9/port/proc.c @@ -1387,7 +1387,7 @@ kproc(char *name, void (*func)(void *), void *arg) p->s = up->s; p->nerrlab = 0; p->slash = up->slash; - p->dot = up->dot; + p->dot = up->slash; /* unlike fork, do not inherit the dot for kprocs */ if(p->dot != nil) incref(p->dot); diff --git a/sys/src/9/port/segment.c b/sys/src/9/port/segment.c index c2ad137f1..a15f928cc 100644 --- a/sys/src/9/port/segment.c +++ b/sys/src/9/port/segment.c @@ -837,10 +837,6 @@ segmentioproc(void *arg) incref(sio->s); up->seg[sno] = sio->s; - cclose(up->dot); - up->dot = up->slash; - incref(up->dot); - while(waserror()) ; for(done = 0; !done;){ diff --git a/sys/src/9/port/swap.c b/sys/src/9/port/swap.c index efbf3cbb4..73d12345a 100644 --- a/sys/src/9/port/swap.c +++ b/sys/src/9/port/swap.c @@ -149,10 +149,6 @@ pager(void*) Segment *s; Proc *p, *ep; - cclose(up->dot); - up->dot = up->slash; - incref(up->dot); - p = proctab(0); ep = &p[conf.nproc]; diff --git a/sys/src/9/zynq/screen.c b/sys/src/9/zynq/screen.c index dbed776c9..fcf3a365c 100644 --- a/sys/src/9/zynq/screen.c +++ b/sys/src/9/zynq/screen.c @@ -116,10 +116,6 @@ cursorproc(void *arg) up->seg[i] = arg; - cclose(up->dot); - up->dot = up->slash; - incref(up->dot); - hwcursor.proc = up; if(waserror()){ hwcursor.addr = 0; @@ -204,10 +200,6 @@ screenproc(void *arg) up->seg[sno] = arg; - cclose(up->dot); - up->dot = up->slash; - incref(up->dot); - fbscreen.proc = up; if(waserror()){ fbscreen.addr = 0; |