aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sbin/mount_unionfs/mount_unionfs.87
-rw-r--r--sys/fs/unionfs/union_vfsops.c21
2 files changed, 4 insertions, 24 deletions
diff --git a/sbin/mount_unionfs/mount_unionfs.8 b/sbin/mount_unionfs/mount_unionfs.8
index 4f661b8bdd1b..d120dd0ebe0c 100644
--- a/sbin/mount_unionfs/mount_unionfs.8
+++ b/sbin/mount_unionfs/mount_unionfs.8
@@ -363,9 +363,10 @@ their intent to take it over.
Without whiteout support from the file system backing the upper layer,
there is no way that delete and rename operations on lower layer
objects can be done.
-.Er EROFS
-is returned for this kind of operations along with any others
-which would make modifications to the lower layer, such as
+.Er EOPNOTSUPP
+is returned for this kind of operations as generated by VOP_WHITEOUT()
+along with any others which would make modifications to the lower
+layer, such as
.Xr chmod 1 .
.Pp
Running
diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c
index 604d4a3943f0..e11219c1d026 100644
--- a/sys/fs/unionfs/union_vfsops.c
+++ b/sys/fs/unionfs/union_vfsops.c
@@ -89,7 +89,6 @@ unionfs_domount(struct mount *mp)
u_short ufile;
unionfs_copymode copymode;
unionfs_whitemode whitemode;
- struct componentname fakecn;
struct nameidata nd, *ndp;
struct vattr va;
@@ -280,26 +279,6 @@ unionfs_domount(struct mount *mp)
mp->mnt_flag |= ump->um_uppervp->v_mount->mnt_flag & MNT_RDONLY;
/*
- * Check whiteout
- */
- if ((mp->mnt_flag & MNT_RDONLY) == 0) {
- memset(&fakecn, 0, sizeof(fakecn));
- fakecn.cn_nameiop = LOOKUP;
- fakecn.cn_thread = td;
- error = VOP_WHITEOUT(ump->um_uppervp, &fakecn, LOOKUP);
- if (error) {
- if (below) {
- VOP_UNLOCK(ump->um_uppervp, 0);
- vrele(upperrootvp);
- } else
- vput(ump->um_uppervp);
- free(ump, M_UNIONFSMNT);
- mp->mnt_data = NULL;
- return (error);
- }
- }
-
- /*
* Unlock the node
*/
VOP_UNLOCK(ump->um_uppervp, 0);