[Bug 230220] UFS: the freezing ioctl (i.e.UFSSUSPEND) causes panic or EBUSY

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Jul 31 19:02:55 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230220

--- Comment #9 from Dexuan Cui <decui at microsoft.com> ---
Thanks for the patch that removes the KASSERT for the panic!

I still don't know how to correctly freeze all the mounted file systems. Can
you please elaborate it? I do have multiple mounted file systems. My purpose is
that: 
1. Freeze all the mounted file systems, so any write access is suspended;
2. The host (i.e. Hyper-V) can take a quick snapshot of the guest image. The
snapshot is file system consistent.
3. The guest can thaw the file systems, so any suspended write can resume.

Assuming I have these 3 mounted file systems, should I freeze (and then thaw)
all of them? What order should I use -- freezing /mnt and /opt before / ?

/dev/da0s1a on / (ufs, local, journaled soft-updates)
/dev/da2p1 on /mnt (ufs, local, soft-updates)
/dev/da2p2 on /opt (ufs, local, soft-updates)

What' the correct way to thaw all the file systems -- by just closing the
/dev/ufssuspend file descriptor, or callling ioctl(g_ufs_suspend_handle,
UFSRESUME, ...) for every mounted file systems I froze by
ioctl(g_ufs_suspend_handle, UFSSUSPEND, ...) ?

According to
https://lists.freebsd.org/pipermail/freebsd-fs/2015-February/020805.html, it
looks I should use ioctl with UFSSUSPEND and UFSRESUME, but I need to figure
out why contrib/hyperv/tools/hv_vss_daemon.c  didn't do that in the first
place.

It looks there is no good document about how the UFSSUSPEND/UFSRESUME ioctl
should be correctly used. 
Linux has a utility fsfreeze: https://linux.die.net/man/8/fsfreeze, but it
looks the equivalent utility doesn't exist in FreeBSD.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list