dm: use local printk ratelimit
printk_ratelimit() shares global ratelimiting state with all other subsystems, so its usage is discouraged. Instead, define and use dm's local state. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
		
					parent
					
						
							
								4693c9668f
							
						
					
				
			
			
				commit
				
					
						71a16736a1
					
				
			
		
					 2 changed files with 23 additions and 4 deletions
				
			
		| 
						 | 
					@ -25,6 +25,16 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DM_MSG_PREFIX "core"
 | 
					#define DM_MSG_PREFIX "core"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_PRINTK
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * ratelimit state to be used in DMXXX_LIMIT().
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					DEFINE_RATELIMIT_STATE(dm_ratelimit_state,
 | 
				
			||||||
 | 
							       DEFAULT_RATELIMIT_INTERVAL,
 | 
				
			||||||
 | 
							       DEFAULT_RATELIMIT_BURST);
 | 
				
			||||||
 | 
					EXPORT_SYMBOL(dm_ratelimit_state);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Cookies are numeric values sent with CHANGE and REMOVE
 | 
					 * Cookies are numeric values sent with CHANGE and REMOVE
 | 
				
			||||||
 * uevents while resuming, removing or renaming the device.
 | 
					 * uevents while resuming, removing or renaming the device.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/bio.h>
 | 
					#include <linux/bio.h>
 | 
				
			||||||
#include <linux/blkdev.h>
 | 
					#include <linux/blkdev.h>
 | 
				
			||||||
 | 
					#include <linux/ratelimit.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct dm_dev;
 | 
					struct dm_dev;
 | 
				
			||||||
struct dm_target;
 | 
					struct dm_target;
 | 
				
			||||||
| 
						 | 
					@ -375,6 +376,14 @@ void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
 | 
				
			||||||
 *---------------------------------------------------------------*/
 | 
					 *---------------------------------------------------------------*/
 | 
				
			||||||
#define DM_NAME "device-mapper"
 | 
					#define DM_NAME "device-mapper"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef CONFIG_PRINTK
 | 
				
			||||||
 | 
					extern struct ratelimit_state dm_ratelimit_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define dm_ratelimit()	__ratelimit(&dm_ratelimit_state)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define dm_ratelimit()	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DMCRIT(f, arg...) \
 | 
					#define DMCRIT(f, arg...) \
 | 
				
			||||||
	printk(KERN_CRIT DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
						printk(KERN_CRIT DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -382,7 +391,7 @@ void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
 | 
				
			||||||
	printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
						printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
				
			||||||
#define DMERR_LIMIT(f, arg...) \
 | 
					#define DMERR_LIMIT(f, arg...) \
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		if (printk_ratelimit())	\
 | 
							if (dm_ratelimit())	\
 | 
				
			||||||
			printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " \
 | 
								printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " \
 | 
				
			||||||
			       f "\n", ## arg); \
 | 
								       f "\n", ## arg); \
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
| 
						 | 
					@ -391,7 +400,7 @@ void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
 | 
				
			||||||
	printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
						printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
				
			||||||
#define DMWARN_LIMIT(f, arg...) \
 | 
					#define DMWARN_LIMIT(f, arg...) \
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		if (printk_ratelimit())	\
 | 
							if (dm_ratelimit())	\
 | 
				
			||||||
			printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " \
 | 
								printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " \
 | 
				
			||||||
			       f "\n", ## arg); \
 | 
								       f "\n", ## arg); \
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
| 
						 | 
					@ -400,7 +409,7 @@ void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
 | 
				
			||||||
	printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
						printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
 | 
				
			||||||
#define DMINFO_LIMIT(f, arg...) \
 | 
					#define DMINFO_LIMIT(f, arg...) \
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		if (printk_ratelimit())	\
 | 
							if (dm_ratelimit())	\
 | 
				
			||||||
			printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f \
 | 
								printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f \
 | 
				
			||||||
			       "\n", ## arg); \
 | 
								       "\n", ## arg); \
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
| 
						 | 
					@ -410,7 +419,7 @@ void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
 | 
				
			||||||
	printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX " DEBUG: " f "\n", ## arg)
 | 
						printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX " DEBUG: " f "\n", ## arg)
 | 
				
			||||||
#  define DMDEBUG_LIMIT(f, arg...) \
 | 
					#  define DMDEBUG_LIMIT(f, arg...) \
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		if (printk_ratelimit())	\
 | 
							if (dm_ratelimit())	\
 | 
				
			||||||
			printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX ": " f \
 | 
								printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX ": " f \
 | 
				
			||||||
			       "\n", ## arg); \
 | 
								       "\n", ## arg); \
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue