Re: [NBD] Use per-device semaphore instead of BKL

From: Paul Clements
Date: Sun Nov 20 2005 - 16:42:14 EST


Herbert Xu wrote:
On Sun, Nov 20, 2005 at 12:19:17PM -0500, Paul Clements wrote:

The dropping of the lock in nbd_do_it is actually critical to the way nbd functions. nbd_do_it runs for the lifetime of the nbd device, so if nbd_do_it were holding some lock (BKL or otherwise), we'd have big problems.


Why would you want to issue an ioctl from a different process while
nbd-client is still running?

nbd-client -d (disconnect) is the main reason -- this functionality would be broken if we didn't allow ioctls anymore

Allow ioctl's while nbd_do_it is in progress is a *serious* bug. For a

Certain ioctls, yes. There's no harm in NBD_DISCONNECT, though.

start, if someone else clears the socket then nbd_read_stat will crash.

I agree, NBD_CLEAR_SOCK from another process while nbd_do_it is running would cause problems. But, if the user-level tools are coded properly, this is not an issue.

Perhaps your ioctl lock scheme, with an exemption for NBD_DISCONNECT would work?

--
Paul
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/