#define LUSTRE_STRIPE_MAXBYTES 0x1fffffff000ULL
/* Special values for remove LOV EA from disk */
-#define LOVEA_DELETE_VALUES(size, count, offset) (size == 0 && count == 0 && \
- offset == (typeof(offset))(-1))
+#define LOVEA_DELETE_VALUES(size, count, offset, pool) \
+ ((size) == 0 && (count) == 0 && \
+ (offset) == (typeof(offset))(-1) && (pool) == NULL)
+
/* #define POISON_BULK 0 */
RETURN(0);
if (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))
RETURN(0);
/* XXX: use thread info */
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 = dt_xattr_del(env, next, name, th, capa);
if (rc == -ENODATA)
rc = 0;
if (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))
RETURN(0);
OBD_ALLOC_PTR(v3);
local ost_range="$first_ost $last_ost $ost_step"
local test_path=$POOL_ROOT/$POOL_DIR_NAME
local file_dir=$POOL_ROOT/file_tst
+ local subdir=$test_path/subdir
local rc=0
while : ; do
mkdir -p $test_path
pool_set_dir $POOL $test_path || { rc=$? ; break; }
pool_check_dir $POOL $test_path || { rc=$? ; break; }
+ mkdir -p $subdir
+ pool_check_dir $POOL $subdir || { rc=$? ; break; }
pool_dir_rel_path $POOL $POOL_DIR_NAME $POOL_ROOT \
|| { rc=$? ; break; }
# former test_200e test_200f