if (lo->ldo_striping_cached &&
!LOVEA_DELETE_VALUES(lo->ldo_def_stripe_size,
lo->ldo_def_stripenr,
- lo->ldo_def_stripe_offset)) {
+ lo->ldo_def_stripe_offset,
+ lo->ldo_pool)) {
struct lov_user_md_v3 *v3;
/* sigh, lti_ea_store has been used for lmv_buf,
struct lod_object *l = lod_dt_obj(dt);
struct lov_user_md_v1 *lum;
struct lov_user_md_v3 *v3 = NULL;
+ const char *pool_name = NULL;
int rc;
ENTRY;
if (rc)
RETURN(rc);
- if (lum->lmm_magic == LOV_USER_MAGIC_V3)
+ if (lum->lmm_magic == LOV_USER_MAGIC_V3) {
v3 = buf->lb_buf;
+ if (v3->lmm_pool_name[0] != '\0')
+ pool_name = v3->lmm_pool_name;
+ }
/* if { size, offset, count } = { 0, -1, 0 } and no pool
* (i.e. all default values specified) then delete default
(int)lum->lmm_stripe_offset,
v3 ? "from" : "", v3 ? v3->lmm_pool_name : "");
- if (LOVEA_DELETE_VALUES((lum->lmm_stripe_size),
- (lum->lmm_stripe_count),
- (lum->lmm_stripe_offset)) &&
- lum->lmm_magic == LOV_USER_MAGIC_V1) {
+ if (LOVEA_DELETE_VALUES(lum->lmm_stripe_size, lum->lmm_stripe_count,
+ lum->lmm_stripe_offset, pool_name)) {
rc = lod_xattr_del_internal(env, dt, name, th, capa);
if (rc == -ENODATA)
rc = 0;
if (lo->ldo_striping_cached &&
!LOVEA_DELETE_VALUES(lo->ldo_def_stripe_size,
lo->ldo_def_stripenr,
- lo->ldo_def_stripe_offset)) {
+ lo->ldo_def_stripe_offset,
+ lo->ldo_pool)) {
struct lov_user_md_v3 *v3;
/* sigh, lti_ea_store has been used for lmv_buf,
if (lo->ldo_striping_cached &&
!LOVEA_DELETE_VALUES(lo->ldo_def_stripe_size,
lo->ldo_def_stripenr,
- lo->ldo_def_stripe_offset)) {
+ lo->ldo_def_stripe_offset,
+ lo->ldo_pool)) {
struct lov_user_md_v3 *v3 = info->lti_ea_store;
if (info->lti_ea_store_size < sizeof(*v3)) {