diff options
Diffstat (limited to 'mm/backing-dev.c')
| -rw-r--r-- | mm/backing-dev.c | 17 | 
1 files changed, 15 insertions, 2 deletions
| diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 74b52dfd5852..b5f940ce0143 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -113,11 +113,23 @@ static const struct file_operations bdi_debug_stats_fops = {  	.release	= single_release,  }; -static void bdi_debug_register(struct backing_dev_info *bdi, const char *name) +static int bdi_debug_register(struct backing_dev_info *bdi, const char *name)  { +	if (!bdi_debug_root) +		return -ENOMEM; +  	bdi->debug_dir = debugfs_create_dir(name, bdi_debug_root); +	if (!bdi->debug_dir) +		return -ENOMEM; +  	bdi->debug_stats = debugfs_create_file("stats", 0444, bdi->debug_dir,  					       bdi, &bdi_debug_stats_fops); +	if (!bdi->debug_stats) { +		debugfs_remove(bdi->debug_dir); +		return -ENOMEM; +	} + +	return 0;  }  static void bdi_debug_unregister(struct backing_dev_info *bdi) @@ -129,9 +141,10 @@ static void bdi_debug_unregister(struct backing_dev_info *bdi)  static inline void bdi_debug_init(void)  {  } -static inline void bdi_debug_register(struct backing_dev_info *bdi, +static inline int bdi_debug_register(struct backing_dev_info *bdi,  				      const char *name)  { +	return 0;  }  static inline void bdi_debug_unregister(struct backing_dev_info *bdi)  { |