[issue998] Unconfiguring a vn while it is mounted

Stathis Kamperis (via DragonFly issue tracker) sinknull at crater.dragonflybsd.org
Sun Feb 1 13:20:17 PST 2009

Stathis Kamperis <ekamperi at gmail.com> added the comment:

vnconfig supports creating a vnode pseudo disk device AND mounting it at the
same time, in the same line:

vnconfig -e /dev/vn0 lala.img mountro=/mnt/lala
vnconfig -u /dev/vn0

The problem is that when you try to unconfigure it, it only checks if the
mountro= or mountrw= "feature" was passed to it during its invokation. If you
didn't, it assumes that there is no mounted filesystem.

It doesn't take into account that a person could manually mount a vnode device
after vnconfig:

vnconfig /dev/vn0 lala.img
mount -o rdonly /dev/vn0 /mnt/lala
vnconfig -u /dev/vn0

My preliminary work is to introduce a function is_mounted() that *really* checks
if the /dev/vnX to be uncofigured is mounted to the filesystem. And it does by
calling getfsstat() to get a list of actively mounted filesystems.

Patch in:
http://stathisk.ath.cx/0001-Make-vnconfig-u-check-if-vnode-is-mounted-to-fs. patch

It ain't perfect, but it solves the problem for me (well, please test it and
provide feedback). Beside that, I sense that vnconfig's code needs some
refactoring, but let's tackle 1 issue at a time.

Best regards,

priority:  -> bug

DragonFly issue tracker <bugs at lists.dragonflybsd.org>

More information about the Bugs mailing list