}
CDEBUG(D_INODE, "OPEN_INTENT with fid1="DFID", fid2="DFID","
- " name='%s' -> mds #%u\n", PFID(&op_data->op_fid1),
- PFID(&op_data->op_fid2), op_data->op_name, tgt->ltd_index);
+ " name='"DNAME"' -> mds #%u\n", PFID(&op_data->op_fid1),
+ PFID(&op_data->op_fid2), encode_fn_opdata(op_data),
+ tgt->ltd_index);
rc = md_intent_lock(tgt->ltd_exp, op_data, it, reqp, cb_blocking,
extra_lock_flags);
CDEBUG(D_INODE, "LOOKUP_INTENT with fid1="DFID", fid2="DFID
", name='%s' -> mds #%u\n",
PFID(&op_data->op_fid1), PFID(&op_data->op_fid2),
- op_data->op_name ? op_data->op_name : "<NULL>",
- tgt->ltd_index);
+ op_data->op_name ?
+ encode_fn_len(op_data->op_name, op_data->op_namelen) :
+ "<NULL>", tgt->ltd_index);
op_data->op_bias &= ~MDS_CROSS_REF;
LASSERT(it != NULL);
LASSERT(fid_is_sane(&op_data->op_fid1));
- CDEBUG(D_INODE, "INTENT LOCK '%s' for "DFID" '%.*s' on "DFID"\n",
+ CDEBUG(D_INODE, "INTENT LOCK '%s' for "DFID" '"DNAME"' on "DFID"\n",
LL_IT2STR(it), PFID(&op_data->op_fid2),
- (int)op_data->op_namelen, op_data->op_name,
- PFID(&op_data->op_fid1));
+ encode_fn_opdata(op_data), PFID(&op_data->op_fid1));
if (it->it_op & (IT_LOOKUP | IT_GETATTR | IT_LAYOUT | IT_GETXATTR))
rc = lmv_intent_lookup(exp, op_data, it, reqp, cb_blocking,
if (rc)
RETURN(rc);
- CDEBUG(D_INODE, "CREATE name '%.*s' "DFID" on "DFID" -> mds #%x\n",
- (int)op_data->op_namelen, op_data->op_name,
- PFID(&op_data->op_fid2), PFID(&op_data->op_fid1),
- op_data->op_mds);
+ CDEBUG(D_INODE, "CREATE name '"DNAME"' "DFID" on "DFID" -> mds #%x\n",
+ encode_fn_opdata(op_data), PFID(&op_data->op_fid2),
+ PFID(&op_data->op_fid1), op_data->op_mds);
op_data->op_flags |= MF_MDC_CANCEL_FID1;
rc = md_create(tgt->ltd_exp, op_data, data, datalen, mode, uid, gid,
LASSERT(op_data->op_cli_flags & CLI_MIGRATE);
- CDEBUG(D_INODE, "MIGRATE "DFID"/%.*s\n",
- PFID(&op_data->op_fid1), (int)namelen, name);
+ CDEBUG(D_INODE, "MIGRATE "DFID"/"DNAME"\n",
+ PFID(&op_data->op_fid1), encode_fn_dname(namelen, name));
op_data->op_fsuid = from_kuid(&init_user_ns, current_fsuid());
op_data->op_fsgid = from_kgid(&init_user_ns, current_fsgid());
}
rename:
- CDEBUG(D_INODE, "RENAME "DFID"/%.*s to "DFID"/%.*s\n",
- PFID(&op_data->op_fid1), (int)oldlen, old,
- PFID(&op_data->op_fid2), (int)newlen, new);
+ CDEBUG(D_INODE, "RENAME "DFID"/"DNAME" to "DFID"/"DNAME"\n",
+ PFID(&op_data->op_fid1), encode_fn_dname(oldlen, old),
+ PFID(&op_data->op_fid2), encode_fn_dname(newlen, new));
rc = md_rename(tgt->ltd_exp, op_data, old, oldlen, new, newlen,
request);
RCL_SERVER,
obd->u.cli.cl_max_mds_easize);
- CDEBUG(D_SEC, "packed '%.*s' as security xattr name\n",
- op_data->op_file_secctx_name_size,
- op_data->op_file_secctx_name);
+ CDEBUG(D_SEC, "packed '"DNAME"' as security xattr name\n",
+ encode_fn_opdata(op_data));
} else {
req_capsule_set_size(&req->rq_pill, &RMF_FILE_SECCTX,
req_capsule_set_size(&req->rq_pill, &RMF_FILE_SECCTX,
RCL_SERVER, easize);
- CDEBUG(D_SEC, "packed '%.*s' as security xattr name\n",
- op_data->op_file_secctx_name_size,
- op_data->op_file_secctx_name);
+ CDEBUG(D_SEC, "packed '"DNAME"' as security xattr name\n",
+ encode_fn_opdata(op_data));
} else {
req_capsule_set_size(&req->rq_pill, &RMF_FILE_SECCTX,
RCL_SERVER, 0);
EXIT;
out:
CDEBUG(D_DENTRY,
- "D_IT dentry=%.*s intent=%s status=%d disp=%x: rc = %d\n",
- (int)op_data->op_namelen, op_data->op_name,
- ldlm_it2str(it->it_op), it->it_status, it->it_disposition, rc);
+ "D_IT dentry="DNAME" intent=%s status=%d disp=%x: rc = %d\n",
+ encode_fn_opdata(op_data), ldlm_it2str(it->it_op),
+ it->it_status, it->it_disposition, rc);
return rc;
}
ENTRY;
LASSERT(it);
- CDEBUG(D_DLMTRACE, "(name: %.*s,"DFID") in obj "DFID
- ", intent: %s flags %#lo\n", (int)op_data->op_namelen,
- op_data->op_name, PFID(&op_data->op_fid2),
- PFID(&op_data->op_fid1), ldlm_it2str(it->it_op),
- it->it_open_flags);
+ CDEBUG(D_DLMTRACE,
+ "(name: "DNAME","DFID") in obj "DFID", intent: %s flags %#lo\n",
+ encode_fn_opdata(op_data), PFID(&op_data->op_fid2),
+ PFID(&op_data->op_fid1), ldlm_it2str(it->it_op),
+ it->it_open_flags);
lockh.cookie = 0;
/* MDS_FID_OP is not a revalidate case */
ENTRY;
CDEBUG(D_DLMTRACE,
- "name: %.*s in inode "DFID", intent: %s flags %#lo\n",
- (int)op_data->op_namelen, op_data->op_name,
- PFID(&op_data->op_fid1), ldlm_it2str(it->it_op),
- it->it_open_flags);
+ "name: "DNAME" in inode "DFID", intent: %s flags %#lo\n",
+ encode_fn_opdata(op_data), PFID(&op_data->op_fid1),
+ ldlm_it2str(it->it_op), it->it_open_flags);
fid_build_reg_res_name(&op_data->op_fid1, &res_id);
/* If the MDT return -ERANGE because of large ACL, then the sponsor
leh->leh_overflow_time++;
CDEBUG(D_INODE, "No enough space to hold linkea entry '"
- DFID": %.*s' at %u\n", PFID(pfid), lname->ln_namelen,
- lname->ln_name, leh->leh_overflow_time);
+ DFID": "DNAME"' at %u\n", PFID(pfid),
+ encode_fn_luname(lname), leh->leh_overflow_time);
return err_on_overflow ? -EOVERFLOW : 0;
}
"New link_ea name '"DFID":<encrypted (%d)>' is added\n",
PFID(pfid), lname->ln_namelen);
else
- CDEBUG(D_INODE, "New link_ea name '"DFID":%.*s' is added\n",
- PFID(pfid), lname->ln_namelen, lname->ln_name);
+ CDEBUG(D_INODE, "New link_ea name '"DFID":"DNAME"' is added\n",
+ PFID(pfid), encode_fn_luname(lname));
return 0;
}
EXPORT_SYMBOL(linkea_add_buf);
"Old link_ea name '<encrypted (%d)>' is removed\n",
lname->ln_namelen);
else
- CDEBUG(D_INODE, "Old link_ea name '%.*s' is removed\n",
- lname->ln_namelen, lname->ln_name);
+ CDEBUG(D_INODE, "Old link_ea name '"DNAME"' is removed\n",
+ encode_fn_luname(lname));
if ((char *)ldata->ld_lee >= ((char *)ldata->ld_leh +
ldata->ld_leh->leh_len))
linkea_entry_unpack(ldata->ld_lee, &ldata->ld_reclen, &tname, &tfid);
CDEBUG(D_INODE, "No enough space to hold the last linkea entry '"
- DFID": %.*s', shrink it, left %d linkea entries, size %llu\n",
- PFID(&tfid), tname.ln_namelen, tname.ln_name,
- leh->leh_reccount, leh->leh_len);
+ DFID": "DNAME"', shrink it, left %d linkea entries, size %llu\n",
+ PFID(&tfid), encode_fn_luname(&tname), leh->leh_reccount,
+ leh->leh_len);
return leh->leh_len;
}
}
if (count == ldata->ld_leh->leh_reccount) {
- CDEBUG(D_INODE, "Old link_ea name '%.*s' not found\n",
- lname->ln_namelen, lname->ln_name);
+ CDEBUG(D_INODE, "Old link_ea name '"DNAME"' not found\n",
+ encode_fn_luname(lname));
ldata->ld_lee = NULL;
ldata->ld_reclen = 0;
return -ENOENT;
dt_read_unlock(env, obj);
CDEBUG(D_INFO, "lookup "DFID" %s get "DFID" rc %d\n",
- PFID(lu_object_fid(&obj->do_lu)), name,
+ PFID(lu_object_fid(&obj->do_lu)), encode_fn(name),
PFID(&tti->tti_fid1), rc);
CDEBUG(D_INFO, "%s: insert lookup reply %p index %d: rc = %d\n",
CDEBUG(D_INFO, "%s: "DFID" index insert %s: rc = %d\n",
tgt_name(tsi->tsi_tgt), PFID(lu_object_fid(&obj->do_lu)),
- name, rc);
+ encode_fn(name), rc);
RETURN(rc);
}
CDEBUG(D_INFO, "%s: index insert "DFID" name: %s fid "DFID", type %u\n",
dt_obd_name(th->th_dev), PFID(lu_object_fid(&dt_obj->do_lu)),
- (char *)key, PFID(((struct dt_insert_rec *)rec)->rec_fid),
+ encode_fn((char *)key),
+ PFID(((struct dt_insert_rec *)rec)->rec_fid),
((struct dt_insert_rec *)rec)->rec_type);
if (!dt_try_as_dir(env, dt_obj, true))
}
run_test 169 "parallel read and truncate should not deadlock"
-test_170() {
+test_170a() {
[ $PARALLEL == "yes" ] && skip "skip parallel run"
$LCTL clear # bug 18514
fi
true
}
-run_test 170 "test lctl df to handle corrupted log ====================="
+run_test 170a "test lctl df to handle corrupted log"
+
+test_170b() {
+ # enable filename encoding on one client, ost and mdt respectively
+ declare -a old_fl
+ local param="enable_fname_encoding"
+ local nodes_list=$HOSTNAME
+ local log=$TMP/sanity.$testnum
+ local i=0
+
+ (( $MDS1_VERSION >= $(version_code 2.16.52) )) &&
+ nodes_list="$nodes_list,$(facet_active_host mds1)"
+ (( $OST1_VERSION >= $(version_code 2.16.52) )) &&
+ nodes_list="$nodes_list,$(facet_active_host ost1)"
+
+ old_fl=($(do_nodes $nodes_list $LCTL get_param -n $param))
+
+ # Test with filename encoding on
+ set_params_nodes $nodes_list "$param=on"
+ for node in ${nodes_list//,/ }; do
+ stack_trap "set_params_nodes $node "$param=${old_fl[$i]}""
+ i=$((i+1))
+ done
+ do_nodes $nodes_list "$LCTL get_param -n $param" | grep 0 &&
+ error "Failed to enable filename encoding on all the nodes"
+
+ # Start full debug to collect the logs
+ start_full_debug_logging $nodes_list
+ do_nodes $nodes_list "$LCTL clear"
+
+ # Do some operations on $tfile
+ touch $DIR/$tfile || error "Failed to touch $tfile"
+ cp $DIR/$tfile $DIR/$testnum.cp || error "Failed to cp $tfile"
+ ln -s $DIR/$tfile $DIR/$testnum.ln || error "Failed to ln -s $tfile"
+ $LFS migrate -c $OSTCOUNT $DIR/$tfile ||
+ error "Failed to migrate $tfile"
+ $LFS mirror extend -N $DIR/$tfile ||
+ error "Failed to extend mirrored $tfile"
+ mv $DIR/$tfile $DIR/$testnum.mv || error "Failed to mv $tfile"
+ rm -f $DIR/$tfile $DIR/$testnum.* || error "Failed to rm $tfile"
+
+ # Do some operations on $tdir
+ mkdir -p $DIR/$tdir || error "Failed to mkdir $tdir"
+ cp -r $DIR/$tdir $DIR/$testnum.cp || error "Failed to cp $tdir"
+ ln -s $DIR/$tdir $DIR/$testnum.ln || error "Failed to ln -s $tdir"
+ $LFS migrate -d -m 0 -c $MDSCOUNT $DIR/$tdir ||
+ error "Failed to migrate $tdir"
+ mv $DIR/$tdir $DIR/$testnum.mv || error "Failed to mv $tdir"
+ rm -rf $DIR/$tdir $DIR/$testnum.* || error "Failed to rm $tdir"
+
+ # Stop the full debug
+ do_nodes $nodes_list "$LCTL dk > $log"
+ stack_trap "do_nodes $nodes_list rm -f $log"
+ stop_full_debug_logging
+
+ # Verify if $tfile and $tdir names are encoded in the logs
+ do_nodes $nodes_list "grep -E '$tfile|$tdir' $log" &&
+ error "Still found '$tfile' and '$tdir' in the logs"
+ return 0
+}
+run_test 170b "check filename encoding"
test_171() { # bug20592
[ $PARALLEL == "yes" ] && skip "skip parallel run"