@@ -999,11 +999,11 @@ xfs_attr_set(
/*
* We have no control over the attribute names that userspace passes us
* to remove, so we have to allow the name lookup prior to attribute
- * removal to fail as well. Preserve the logged flag, since we need
- * to pass that through to the logging code.
+ * removal to fail as well. Preserve the logged and vlookup flags,
+ * since we need to pass them through to the lower levels.
*/
- args->op_flags = XFS_DA_OP_OKNOENT |
- (args->op_flags & XFS_DA_OP_LOGGED);
+ args->op_flags &= (XFS_DA_OP_LOGGED | XFS_DA_OP_VLOOKUP);
+ args->op_flags |= XFS_DA_OP_OKNOENT;
if (!is_remove) {
XFS_STATS_INC(mp, xs_attr_set);