ax25: netrom: rose: Fix timer oopses
[safe/jmp/linux-2.6] / include / linux / blk-iopoll.h
index b2e1739..308734d 100644 (file)
@@ -18,10 +18,17 @@ enum {
        IOPOLL_F_DISABLE        = 1,
 };
 
+/*
+ * Returns 0 if we successfully set the IOPOLL_F_SCHED bit, indicating
+ * that we were the first to acquire this iop for scheduling. If this iop
+ * is currently disabled, return "failure".
+ */
 static inline int blk_iopoll_sched_prep(struct blk_iopoll *iop)
 {
-       return !test_bit(IOPOLL_F_DISABLE, &iop->state) &&
-               !test_and_set_bit(IOPOLL_F_SCHED, &iop->state);
+       if (!test_bit(IOPOLL_F_DISABLE, &iop->state))
+               return test_and_set_bit(IOPOLL_F_SCHED, &iop->state);
+
+       return 1;
 }
 
 static inline int blk_iopoll_disable_pending(struct blk_iopoll *iop)