git: sys/dev/disk/dm: Add a comment on race on unload
Tomohiro Kusumi
tkusumi at crater.dragonflybsd.org
Thu Nov 12 07:09:37 PST 2015
commit 53a07f3ae7313aa58948a60f46428bfc2254dc3c
Author: Tomohiro Kusumi <kusumi.tomohiro at gmail.com>
Date: Wed Nov 11 20:46:25 2015 +0900
sys/dev/disk/dm: Add a comment on race on unload
There is a minor race window in dm_modcmd() after the below
conditional on unloading dm.ko. It's possible to create a new
device after it gets beyond the conditional with 0.
if (dm_dev_counter > 0)
return EBUSY;
Running the below a.sh and then b.sh concurrently causes
kernel panic. Avoiding this race seems to be difficult using
the existing locks that are all file local ones. The panic
can be reproduced with or without the previous commit.
===== a.sh
#!/usr/local/bin/bash
while [ 1 ]; do
kldload dm
kldunload dm
done
===== b.sh
#!/usr/local/bin/bash
kldload dm
while [ 1 ]; do
dmsetup create zero1 --table '0 100 zero'
dmsetup remove /dev/mapper/zero1
done
Summary of changes:
sys/dev/disk/dm/device-mapper.c | 1 +
1 file changed, 1 insertion(+)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/53a07f3ae7313aa58948a60f46428bfc2254dc3c
--
DragonFly BSD source repository
More information about the Commits
mailing list