/*
* Determine if the mountpoint is empty. If so, refuse to perform the
- * mount. We don't perform this check if 'remount' is specified.
+ * mount. We don't perform this check if 'remount' is
+ * specified or if overlay option(-O) is given
*/
- if (!remount && !dir_is_empty(mountpoint)) {
+ if ((flags & MS_OVERLAY) == 0 && !remount &&
+ !dir_is_empty(mountpoint)) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"directory is not empty"));
return (zfs_error_fmt(hdl, EZFS_MOUNTFAILED,
/*
* Share the given filesystem according to the options in the specified
* protocol specific properties (sharenfs, sharesmb). We rely
- * on "libshare" to the dirty work for us.
+ * on "libshare" to do the dirty work for us.
*/
static int
zfs_share_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto)
mntpt = zfs_strdup(zhp->zfs_hdl, entry.mnt_mountp);
for (curr_proto = proto; *curr_proto != PROTO_END;
- curr_proto++) {
+ curr_proto++) {
if (is_shared(hdl, mntpt, *curr_proto) &&
unshare_one(hdl, zhp->zfs_name,
- mntpt, *curr_proto) != 0) {
+ mntpt, *curr_proto) != 0) {
if (mntpt != NULL)
free(mntpt);
return (-1);