ref: b8eefa9b155bf057f16c346d13f8fb1c0a2cdd7b
parent: 340151bb7cacae3175de254f6a0d1b322d473058
parent: 0ba0ddb74e03b0c8453416d3764b6ecabdc521df
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Mar 8 16:55:58 EDT 2020
merge
--- a/sys/src/9/boot/local.rc
+++ b/sys/src/9/boot/local.rc
@@ -45,7 +45,7 @@
}
fn bootfs{- {$1 -s -f $*(2-) &} <[0=1] | echo 0 >/srv/boot+ {$1 -s -f $*(2-) <[0=1] &} | echo 0 >/srv/boot}
fn connectlocal{--- a/sys/src/9/boot/nusbrc
+++ b/sys/src/9/boot/nusbrc
@@ -45,7 +45,7 @@
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
}
--- a/sys/src/9/port/devshr.c
+++ b/sys/src/9/port/devshr.c
@@ -554,6 +554,7 @@
Sch *sch;
Mpt *mpt;
Mhead *h;
+ Chan *bc;
sch = tosch(c);
if(waserror()){@@ -593,6 +594,7 @@
qunlock(&shrslk);
break;
case Qcmpt:
+ bc = nil;
mpt = sch->mpt;
m = &mpt->m;
h = &shr->umh;
@@ -601,10 +603,14 @@
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();
--
⑨