- return dt_declare_xattr_del(env, dt_object_child(dt), name, th);
+ struct lod_object *lo = lod_dt_obj(dt);
+ int rc;
+ int i;
+ ENTRY;
+
+ rc = dt_declare_xattr_del(env, dt_object_child(dt), name, th);
+ if (rc != 0)
+ RETURN(rc);
+
+ if (!S_ISDIR(dt->do_lu.lo_header->loh_attr))
+ RETURN(0);
+
+ /* set xattr to each stripes, if needed */
+ rc = lod_load_striping(env, lo);
+ if (rc != 0)
+ RETURN(rc);
+
+ if (lo->ldo_stripenr == 0)
+ RETURN(0);
+
+ for (i = 0; i < lo->ldo_stripenr; i++) {
+ LASSERT(lo->ldo_stripe[i]);
+ rc = dt_declare_xattr_del(env, lo->ldo_stripe[i], name, th);
+ if (rc != 0)
+ break;
+ }
+
+ RETURN(rc);