Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2019 16:01:38 +0100
From:      Borja Marcos <borjam@sarenet.es>
To:        Borja Marcos <borjam@sarenet.es>
Cc:        Eric Borisch <eborisch@gmail.com>, freebsd-fs <freebsd-fs@freebsd.org>
Subject:   Re: ZFS snapdir readability (Crosspost)
Message-ID:  <A2C18B9B-C3CF-4874-962D-A4CE496FC8EA@sarenet.es>
In-Reply-To: <51805C8F-75D6-4DA1-A28E-68DAFC8A0276@sarenet.es>
References:  <20191107004635.c6d2e7d464d3d556a0d87465@magnetkern.de> <CAOtMX2huHZcXHH%2B=3Bx7hX_p9udJ2acOX%2BZL8vW=pjqbe6mOAA@mail.gmail.com> <e2eecef7-21b6-0ff2-b259-71421b7d097c@sentex.net> <9B22AD46-BE87-4305-9638-74D23AD4C8CA@sarenet.es> <cfcc12dd-e9eb-5a98-a031-ab18436a2dd3@sentex.net> <261FE331-EC5C-48C8-9249-9BCBF887CE38@sarenet.es> <913f7040-6e38-452d-6187-e17fae63b652@sentex.net> <20191120144041.7f916360dc0c69bf509c9bd1@magnetkern.de> <AEF4CA02-36B3-42FC-BE92-14DF0AF99540@sarenet.es> <20191120163437.691abd369ab9c0a6d7d45ff2@magnetkern.de> <CF38B478-3638-4C18-B69F-E589DE9BBB95@sarenet.es> <20191120175803.03401c3316fe756cc46f79f1@magnetkern.de> <3C5DC6DD-C44B-41EE-B7AB-6D8F94E43174@sarenet.es> <201911211259.xALCxShX008743@higson.cam.lispworks.com> <462E2C53-2490-4B8C-BB54-BCE8B75BAEB0@sarenet.es> <CAMsT2=nBEiaiBNMD9_j1JNBwDueq8anOa2rtO_jPFoRcm0_uDA@mail.gmail.com> <51805C8F-75D6-4DA1-A28E-68DAFC8A0276@sarenet.es>

next in thread | previous in thread | raw e-mail | index | archive | help


> On 21 Nov 2019, at 15:57, Borja Marcos <borjam@sarenet.es> wrote:
>=20
> ZFS originally didn=E2=80=99t offer any mechanism to mount snapshots =
explicitly. Except by cloning.=20

Hmm. Looking at =
https://github.com/zfsonfreebsd/ZoF/blob/projects/zfsbsd/cmd/mount_zfs/mou=
nt_zfs.c

snippet 1
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94

/* try to open the dataset to access the mount point */
	if ((zhp =3D zfs_open(g_zfs, dataset,
	    ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT)) =3D=3D NULL) {
		(void) fprintf(stderr, gettext("filesystem '%s' cannot =
be "
		    "mounted, unable to open the dataset\n"), dataset);
		libzfs_fini(g_zfs);
		return (MOUNT_USAGE);
	}
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94

snippet 2
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94

	/* treat all snapshots as legacy mount points */
	if (zfs_get_type(zhp) =3D=3D ZFS_TYPE_SNAPSHOT)
		(void) strlcpy(prop, ZFS_MOUNTPOINT_LEGACY, =
ZFS_MAXPROPLEN);
	else
		(void) zfs_prop_get(zhp, ZFS_PROP_MOUNTPOINT, prop,
		    sizeof (prop), NULL, NULL, 0, B_FALSE);
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=
=80=94=E2=80=94=E2=80=94

Does this really make sense? Workaround (setting its mountpoint as =
legacy) in order to break=20
previous behavior? I don=E2=80=99t see the problem in cloning snapshots =
in order to mount them. But this
looks like something that can bite back in the future!








Borja.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A2C18B9B-C3CF-4874-962D-A4CE496FC8EA>