X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flinux%2Flinux-wait.h;h=8fac3db8131a059d436d5db84fcaaf2244f7d9b7;hb=39287411e32aeeed342c7da8417975e97310cd4a;hp=d3fbf606cc9e8958ca28b49a5e9092dbbb129d22;hpb=24ab342d6e7b22628b096d89cdfe1d0d54d5551a;p=fs%2Flustre-release.git diff --git a/libcfs/include/libcfs/linux/linux-wait.h b/libcfs/include/libcfs/linux/linux-wait.h index d3fbf60..8fac3db 100644 --- a/libcfs/include/libcfs/linux/linux-wait.h +++ b/libcfs/include/libcfs/linux/linux-wait.h @@ -221,7 +221,13 @@ __out: __ret; \ \ if (condition) \ break; \ - /* See justification in __l_wait_event */ \ + /* We have to do this here because some signals */ \ + /* are not blockable - ie from strace(1). */ \ + /* In these cases we want to schedule_timeout() */ \ + /* again, because we don't want that to return */ \ + /* -EINTR when the RPC actually succeeded. */ \ + /* the recalc_sigpending() below will deliver the */ \ + /* signal properly. */ \ if (signal_pending(current)) { \ spin_lock_irqsave(¤t->sighand->siglock, \ flags); \ @@ -481,7 +487,7 @@ do { \ \ if (condition) \ break; \ - /* See justification in __l_wait_event */ \ + /* See justification in ___wait_event_idle */ \ if (signal_pending(current)) { \ spin_lock_irqsave(¤t->sighand->siglock, \ flags); \