diff options
author | Ori Bernstein <ori@eigenstate.org> | 2018-12-23 23:10:42 -0800 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2018-12-23 23:10:42 -0800 |
commit | ee9b29550f887f125253826c7af3495ac41b39f7 (patch) | |
tree | 48e0bb5ed1ccb939358c805f6fcebdbc178419ab | |
parent | c80f22f74a4b7d08451a73258cbbf1b013da92d8 (diff) |
Make the check work.
Embarrassing.
-rw-r--r-- | sys/src/cmd/nusb/disk/disk.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/sys/src/cmd/nusb/disk/disk.c b/sys/src/cmd/nusb/disk/disk.c index 6017881ab..8779cbc2c 100644 --- a/sys/src/cmd/nusb/disk/disk.c +++ b/sys/src/cmd/nusb/disk/disk.c @@ -361,15 +361,6 @@ umsinit(void) return 0; } -static int -needunstall(void) -{ - char buf[ERRMAX]; - - rerrstr(buf, sizeof(buf)); - return strstr(buf, "medium not present") == nil; -} - /* * called by SR*() commands provided by scuzz's scsireq @@ -377,11 +368,15 @@ needunstall(void) long umsrequest(Umsc *umsc, ScsiPtr *cmd, ScsiPtr *data, int *status) { + char buf[ERRMAX]; Cbw cbw; Csw csw; - int n, nio; + int n, nio, present; Ums *ums; + rerrstr(buf, sizeof(buf)); + present = strstr(buf, "medium not present") == nil; + ums = umsc->ums; memcpy(cbw.signature, "USBC", 4); @@ -427,7 +422,7 @@ umsrequest(Umsc *umsc, ScsiPtr *cmd, ScsiPtr *data, int *status) else fprint(2, "disk: data: %d bytes (nio: %d)\n", n, nio); nio = n; - if(n < 0 && needunstall() || (n <= 9 || data->write == 0)) + if((n == 0 && present) || (n < 0 && data->write == 0)) unstall(dev, ums->epin, Ein); } |