Revision 1: cvs dm 1.0 Revision 2: Only every other metadata area was being read when loading a snapshot! [Kevin Corry] Revision 3: Don't initialise static variables to zero/NULL. Revision 4: Change resume/suspend to do_resume/do_suspend to avoid name clash. Revision 5: Hello all, The current version of the VFS locking patch adds a new semaphore to fs/super.c. This is used to make sure a filesystem does not get mounted on a logical volume while a snapshot is being taken. It also results in all mounts on the system being serialized, and isn't in line with the VFS locking scheme in general. I've been meaning to fix it forever, here's an updated version that adds a super with s->s_dev set to the source volume if nothing is currently mounted on the source volume. This allows me to use the s_umount semaphore in the super block to keep things safe, which is cleaner overall. The other benefit over the existing patch is this one has zero footprint outside the lockfs calls. You're only running new code if you take a snapshot. I've done some testing here, but wanted to let LVM people review it before going further. Patch is below against 2.4.21-rc6. This provides zero new functionality over the existing VFS locking patch, and is experimental. Do not apply this on production servers, and do not apply unless you want to help test. -chris Revision 6: missing parts of the previous vfs patch (merge). Revision 7: Lift vfs locking to dm_suspend/resume.