ufs freeze does not work

Hongjiang Zhang honzhan at microsoft.com
Wed Oct 12 05:29:57 UTC 2016


Hi Edward,

I have another question about UFS suspend. Shall I call "sync" before freezing the fs? See it in my code. 
Another question is do you think it is necessary for FreeBSD to provide a such tool? Is there any stat tool for user to know which file partition is freezed?

sync(); // Is this necessary?
error = ioctl(fso, UFSSUSPEND, &statfsp->f_fsid);

Thanks
Hongjiang Zhang

-----Original Message-----
From: Edward Tomasz Napierała [mailto:etnapierala at gmail.com] On Behalf Of Edward Tomasz Napierala
Sent: Wednesday, June 29, 2016 12:32 PM
To: Mateusz Guzik <mjguzik at gmail.com>
Cc: Hongjiang Zhang <honzhan at microsoft.com>; freebsd-fs at freebsd.org
Subject: Re: ufs freeze does not work

On 0628T2157, Mateusz Guzik wrote:
> On Tue, Jun 28, 2016 at 08:55:23PM +0200, Edward Tomasz Napierała wrote:
> > As I said, the suspension is released when the ufssuspend file 
> > descriptor gets closed - which is what happens when the calling 
> > process exits.  It's a protection mechanism, to avoid the situation 
> > where the process malfunction (eg a crash) would leave the system in unrecoverable (suspended) state.
> > 
> > You probably want your process to just execute another one, and wait 
> > until it exits.
> > 
> 
> The example with freeze -f strongly hints this is supposed to work as 
> a drop in replacement for linux scripts.
> 
> As such, maybe ufs should grow another operation which does not 
> automagically unfreeze.

I'm not sure it's a good idea to provide an inferior mechanism just for backward compatibility with Linux.  Especially given how easy it is to do it properly, modeling the utility after eg lockf(1).

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: freezefs.c
URL: <http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20161012/9eab3e64/attachment.c>


More information about the freebsd-fs mailing list