libbe(3): Descend into children of datasets w/ mountpoint=none
These datasets will generally be canmount=noauto,mountpoint=none (e.g. zroot/var) but have children that may need to be mounted. Instead of skipping that segment for no good reason, descend. Submitted by: Wes Maag Reported by: Wes Maag MFC after: 3 days
This commit is contained in:
parent
e7e3d5223f
commit
88a950762a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=347640
@ -99,13 +99,12 @@ be_mount_iter(zfs_handle_t *zfs_hdl, void *data)
|
|||||||
if (strcmp("none", zfs_mnt) == 0) {
|
if (strcmp("none", zfs_mnt) == 0) {
|
||||||
/*
|
/*
|
||||||
* mountpoint=none; we'll mount it at info->mountpoint assuming
|
* mountpoint=none; we'll mount it at info->mountpoint assuming
|
||||||
* we're at the root. If we're not at the root... that's less
|
* we're at the root. If we're not at the root, we're likely
|
||||||
* than stellar and not entirely sure what to do with that.
|
* at some intermediate dataset (e.g. zroot/var) that will have
|
||||||
* For now, we won't treat it as an error condition -- we just
|
* children that may need to be mounted.
|
||||||
* won't mount it, and we'll continue on.
|
|
||||||
*/
|
*/
|
||||||
if (info->depth > 0)
|
if (info->depth > 0)
|
||||||
return (0);
|
goto skipmount;
|
||||||
|
|
||||||
snprintf(tmp, BE_MAXPATHLEN, "%s", info->mountpoint);
|
snprintf(tmp, BE_MAXPATHLEN, "%s", info->mountpoint);
|
||||||
} else {
|
} else {
|
||||||
@ -136,6 +135,7 @@ be_mount_iter(zfs_handle_t *zfs_hdl, void *data)
|
|||||||
if (!info->deepmount)
|
if (!info->deepmount)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
|
skipmount:
|
||||||
++info->depth;
|
++info->depth;
|
||||||
err = zfs_iter_filesystems(zfs_hdl, be_mount_iter, info);
|
err = zfs_iter_filesystems(zfs_hdl, be_mount_iter, info);
|
||||||
--info->depth;
|
--info->depth;
|
||||||
|
Loading…
Reference in New Issue
Block a user