summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-03-08 20:55:58 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2020-03-08 20:55:58 +0100
commit11628e90fb85137a3f02e4ad5c343c15a90846b5 (patch)
tree28d2960906de353016a5d2cb26ae8994e19d2138
parente652be5559a70aa339a3952889f0421b9dda5ceb (diff)
parent28f3a3aad8d2d73010f1c81080e92f71903f4556 (diff)
merge
-rwxr-xr-xsys/src/9/boot/local.rc2
-rwxr-xr-xsys/src/9/boot/nusbrc2
-rw-r--r--sys/src/9/port/devshr.c6
3 files changed, 8 insertions, 2 deletions
diff --git a/sys/src/9/boot/local.rc b/sys/src/9/boot/local.rc
index c99981042..fcfe5388b 100755
--- a/sys/src/9/boot/local.rc
+++ b/sys/src/9/boot/local.rc
@@ -45,7 +45,7 @@ fn configlocal{
}
fn bootfs{
- {$1 -s -f $*(2-) &} <[0=1] | echo 0 >/srv/boot
+ {$1 -s -f $*(2-) <[0=1] &} | echo 0 >/srv/boot
}
fn connectlocal{
diff --git a/sys/src/9/boot/nusbrc b/sys/src/9/boot/nusbrc
index be7629c26..bf3c311e0 100755
--- a/sys/src/9/boot/nusbrc
+++ b/sys/src/9/boot/nusbrc
@@ -45,7 +45,7 @@ if(! nusb/usbd)
diskparts $dev
for(part in $dev/dos* $dev/9fat* $dev/data) if(test -r $part && ~ `{fstype $part} dos) {
mkdir -m 0700 '#σc/'^$dev || exit
- {dossrv -s -f $part &} <[0=1] |
+ {dossrv -s -f $part <[0=1] &} |
echo 0 >'#σc/'^$dev/dos
exit
}
diff --git a/sys/src/9/port/devshr.c b/sys/src/9/port/devshr.c
index bc7677210..96e319221 100644
--- a/sys/src/9/port/devshr.c
+++ b/sys/src/9/port/devshr.c
@@ -554,6 +554,7 @@ shrremove(Chan *c)
Sch *sch;
Mpt *mpt;
Mhead *h;
+ Chan *bc;
sch = tosch(c);
if(waserror()){
@@ -593,6 +594,7 @@ shrremove(Chan *c)
qunlock(&shrslk);
break;
case Qcmpt:
+ bc = nil;
mpt = sch->mpt;
m = &mpt->m;
h = &shr->umh;
@@ -601,10 +603,14 @@ shrremove(Chan *c)
if(*ml == m){
*ml = m->next;
m->next = nil;
+ bc = m->to;
+ m->to = nil;
putmpt(mpt);
break;
}
wunlock(&h->lock);
+ if(bc != nil)
+ cclose(bc);
break;
}
poperror();