Return with -ENOENT earlier in do_osd_ops, instead of sending the
transaction to backend and fail silently there.
Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
string aname;
bp.copy(op.xattr.name_len, aname);
tracepoint(osd, do_osd_op_pre_rmxattr, soid.oid.name.c_str(), soid.snap.val, aname.c_str());
+ if (!obs.exists || oi.is_whiteout()) {
+ result = -ENOENT;
+ break;
+ }
string name = "_" + aname;
if (pool.info.require_rollback()) {
map<string, boost::optional<bufferlist> > to_set;