2010-04-02 07:32:46

by Anton Blanchard

[permalink] [raw]
Subject: [PATCH] backing-dev: Handle class_create() failure


I hit this when we had a bug in IDR for a few days. Basically sysfs would
fail to create new inodes since it uses an IDR and therefore class_create would
fail.

While we are unlikely to see this fail we may as well handle it instead of
oopsing.

Signed-off-by: Anton Blanchard <[email protected]>
---

diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index 0e8ca03..f13e067 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -227,6 +227,9 @@ static struct device_attribute bdi_dev_attrs[] = {
static __init int bdi_class_init(void)
{
bdi_class = class_create(THIS_MODULE, "bdi");
+ if (IS_ERR(bdi_class))
+ return PTR_ERR(bdi_class);
+
bdi_class->dev_attrs = bdi_dev_attrs;
bdi_debug_init();
return 0;


2010-04-02 07:46:37

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] backing-dev: Handle class_create() failure

On Fri, Apr 02 2010, Anton Blanchard wrote:
>
> I hit this when we had a bug in IDR for a few days. Basically sysfs would
> fail to create new inodes since it uses an IDR and therefore class_create would
> fail.
>
> While we are unlikely to see this fail we may as well handle it instead of
> oopsing.

Thanks Anton, applied.

--
Jens Axboe