Date: Mon, 27 Jun 2016 08:15:09 +0000 From: Hongjiang Zhang <honzhan@microsoft.com> To: "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org> Subject: ufs freeze does not work Message-ID: <CO2PR03MB2215FAA1AB86A669039B9540B5210@CO2PR03MB2215.namprd03.prod.outlook.com>
next in thread | raw e-mail | index | archive | help
Hi all,
I wrote a test to freeze ufs, but it does not work even if the ioctl return=
s successful. What is the problem?
#define _PATH_UFSSUSPEND "/dev/ufssuspend"
static void freeze_allmountpoints()
{
struct statfs *mntbuf, *statfsp;
int mntsize;
int fso;
int error;
int i;
fso =3D open(_PATH_UFSSUSPEND, O_RDWR);
if (fso =3D=3D -1)
err(1, "unable to open %s", _PATH_UFSSUSPEND);
/*
* First check the mounted filesystems.
*/
mntsize =3D getmntinfo(&mntbuf, MNT_NOWAIT);
if (mntsize =3D=3D 0)
return;
printf("mnt size: %d\n", mntsize);
for(i =3D mntsize - 1; i >=3D 0; --i)
{
statfsp =3D &mntbuf[i];
if (strcmp("/", statfsp->f_mntonname) =3D=3D 0 ||
strcmp("ufs", statfsp->f_fstypename) =3D=3D 0)
{
printf("begin to suspend on '%s' from '%s'\n",
statfsp->f_mntonname, statfsp->f_mntfromnam=
e);
error =3D ioctl(fso, UFSSUSPEND, &statfsp->f_fsid);
if (error !=3D 0) {
//err(1, "UFSSUSPEND");
printf("error: %d\n",errno);
} else {
printf("Successfully suspend filesystem\n")=
;
}
break;
}
}
close(fso);
}
Thanks
Hongjiang Zhang
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CO2PR03MB2215FAA1AB86A669039B9540B5210>
