]> git.lizzy.rs Git - plan9front.git/commitdiff
Make the check work.
authorOri Bernstein <ori@eigenstate.org>
Mon, 24 Dec 2018 07:10:42 +0000 (23:10 -0800)
committerOri Bernstein <ori@eigenstate.org>
Mon, 24 Dec 2018 07:10:42 +0000 (23:10 -0800)
Embarrassing.

sys/src/cmd/nusb/disk/disk.c

index 6017881abe9a9261d73fee59daba15768eb30346..8779cbc2cfeab3f269c6f2de001413de106e296e 100644 (file)
@@ -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);
        }