Get pointer to devfs_ruleset struct after garbage collection has been
performed. Otherwise if ruleset is used by given mountpoint and is empty it's freed by devfs_ruleset_reap and pointer becomes bogus. Submitted by: Mateusz Guzik <mjguzik@gmail.com> PR: kern/124853
This commit is contained in:
parent
cbe6e0e8b0
commit
7fd85e5a63
@ -735,15 +735,15 @@ devfs_ruleset_use(devfs_rsnum rsnum, struct devfs_mount *dm)
|
||||
{
|
||||
struct devfs_ruleset *cds, *ds;
|
||||
|
||||
ds = devfs_ruleset_bynum(rsnum);
|
||||
if (ds == NULL)
|
||||
ds = devfs_ruleset_create(rsnum);
|
||||
if (dm->dm_ruleset != 0) {
|
||||
cds = devfs_ruleset_bynum(dm->dm_ruleset);
|
||||
--cds->ds_refcount;
|
||||
devfs_ruleset_reap(cds);
|
||||
}
|
||||
|
||||
ds = devfs_ruleset_bynum(rsnum);
|
||||
if (ds == NULL)
|
||||
ds = devfs_ruleset_create(rsnum);
|
||||
/* These should probably be made atomic somehow. */
|
||||
++ds->ds_refcount;
|
||||
dm->dm_ruleset = rsnum;
|
||||
|
Loading…
Reference in New Issue
Block a user