diff options
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 9c326a50a3ee..99610f358c40 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -3444,25 +3444,12 @@ static void bond_remove_proc_entry(struct bonding *bond) | |||
3444 | */ | 3444 | */ |
3445 | static void bond_create_proc_dir(void) | 3445 | static void bond_create_proc_dir(void) |
3446 | { | 3446 | { |
3447 | int len = strlen(DRV_NAME); | ||
3448 | |||
3449 | for (bond_proc_dir = init_net.proc_net->subdir; bond_proc_dir; | ||
3450 | bond_proc_dir = bond_proc_dir->next) { | ||
3451 | if ((bond_proc_dir->namelen == len) && | ||
3452 | !memcmp(bond_proc_dir->name, DRV_NAME, len)) { | ||
3453 | break; | ||
3454 | } | ||
3455 | } | ||
3456 | |||
3457 | if (!bond_proc_dir) { | 3447 | if (!bond_proc_dir) { |
3458 | bond_proc_dir = proc_mkdir(DRV_NAME, init_net.proc_net); | 3448 | bond_proc_dir = proc_mkdir(DRV_NAME, init_net.proc_net); |
3459 | if (bond_proc_dir) { | 3449 | if (!bond_proc_dir) |
3460 | bond_proc_dir->owner = THIS_MODULE; | ||
3461 | } else { | ||
3462 | printk(KERN_WARNING DRV_NAME | 3450 | printk(KERN_WARNING DRV_NAME |
3463 | ": Warning: cannot create /proc/net/%s\n", | 3451 | ": Warning: cannot create /proc/net/%s\n", |
3464 | DRV_NAME); | 3452 | DRV_NAME); |
3465 | } | ||
3466 | } | 3453 | } |
3467 | } | 3454 | } |
3468 | 3455 | ||
@@ -3471,25 +3458,7 @@ static void bond_create_proc_dir(void) | |||
3471 | */ | 3458 | */ |
3472 | static void bond_destroy_proc_dir(void) | 3459 | static void bond_destroy_proc_dir(void) |
3473 | { | 3460 | { |
3474 | struct proc_dir_entry *de; | 3461 | if (bond_proc_dir) { |
3475 | |||
3476 | if (!bond_proc_dir) { | ||
3477 | return; | ||
3478 | } | ||
3479 | |||
3480 | /* verify that the /proc dir is empty */ | ||
3481 | for (de = bond_proc_dir->subdir; de; de = de->next) { | ||
3482 | /* ignore . and .. */ | ||
3483 | if (*(de->name) != '.') { | ||
3484 | break; | ||
3485 | } | ||
3486 | } | ||
3487 | |||
3488 | if (de) { | ||
3489 | if (bond_proc_dir->owner == THIS_MODULE) { | ||
3490 | bond_proc_dir->owner = NULL; | ||
3491 | } | ||
3492 | } else { | ||
3493 | remove_proc_entry(DRV_NAME, init_net.proc_net); | 3462 | remove_proc_entry(DRV_NAME, init_net.proc_net); |
3494 | bond_proc_dir = NULL; | 3463 | bond_proc_dir = NULL; |
3495 | } | 3464 | } |