qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] One more thing about block device locking


From: Michael Tokarev
Subject: [Qemu-devel] One more thing about block device locking
Date: Fri, 23 Apr 2010 09:07:28 +0400
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.8) Gecko/20100306 Icedove/3.0.3

While I'm reviewing a thread about block device
locking, here's another data point which were
not touched before, as far as I remember.  It
is related.

What I'm talking is - when fsck/mkfs/... family
of programs are run against a mounted (or in use
by other means) device, they warn you about this,
or refuse to run.

This is done by opening the device in question
with O_EXCL flag - it is meaningless for an
existing block device so the meaning has been
overloaded on linux.

It is the _only_ way to ensure the device is
opened exclusively, and it covers such obscure
cases like opening whole disk when at least
one partition is in use by, say, an in-kernel
raid array or something like that.

So while it is the only way, it is also a
_reliable_ way too.

And while before, we were talked mostly about
inter-guest locking/protection, we also should
think about protecting guest and host from
each other.  O_EXCEL is exactly this case --
to ensure _host_ is not using the devie in
question when qemu is trying to open it.

Worth using IMHO :)  But it is a bit weird,
since it only works on linux (actually I've
no idea if it works on any other unix-like
system) and only on block devices, and only
at open(2) time.  So we'll have to either
trial and error, or open "normally", check
if it's a block device and re-open with that
flag set.  Both aren't exactly nice, but
should work.

I'll see what can be done there, but if
someone else who knows code better have
immediate ideas or implementation, welcome.

Thanks!

/mjt




reply via email to

[Prev in Thread] Current Thread [Next in Thread]