libata: use __ratelimit
authorAkinobu Mita <akinobu.mita@gmail.com>
Mon, 12 Apr 2010 12:11:41 +0000 (21:11 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 May 2010 21:08:02 +0000 (17:08 -0400)
Use __ratelimit() instead of its own private rate limit implementation.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: linux-ide@vger.kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c

index 134b5df80acee1e888f297dd9afbf1022e15c7a5..86f405b4831cc95d8fe2fa8e76580a1e9587223e 100644 (file)
@@ -65,6 +65,7 @@
 #include <linux/libata.h>
 #include <asm/byteorder.h>
 #include <linux/cdrom.h>
+#include <linux/ratelimit.h>
 
 #include "libata.h"
 
@@ -6706,25 +6707,11 @@ static void __exit ata_exit(void)
 subsys_initcall(ata_init);
 module_exit(ata_exit);
 
-static unsigned long ratelimit_time;
-static DEFINE_SPINLOCK(ata_ratelimit_lock);
+static DEFINE_RATELIMIT_STATE(ratelimit, HZ / 5, 1);
 
 int ata_ratelimit(void)
 {
-       int rc;
-       unsigned long flags;
-
-       spin_lock_irqsave(&ata_ratelimit_lock, flags);
-
-       if (time_after(jiffies, ratelimit_time)) {
-               rc = 1;
-               ratelimit_time = jiffies + (HZ/5);
-       } else
-               rc = 0;
-
-       spin_unlock_irqrestore(&ata_ratelimit_lock, flags);
-
-       return rc;
+       return __ratelimit(&ratelimit);
 }
 
 /**