X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_lib.c;h=cfd275978c8e4f9f3521b6abc8b0b6b1976964e4;hb=27f77f5de6fe27611c9f819f8cdaba89d70f15d9;hp=05fc80e125e2970b74f2750e5035e345eebb3fce;hpb=cc6dbb4857d2f542f9434ce219ab5d9d4e9b4ef4;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_lib.c b/lustre/mdt/mdt_lib.c index 05fc80e..cfd2759 100644 --- a/lustre/mdt/mdt_lib.c +++ b/lustre/mdt/mdt_lib.c @@ -537,19 +537,21 @@ void mdt_dump_lmm(int level, const struct lov_mds_md *lmm) count = le16_to_cpu(((struct lov_user_md*)lmm)->lmm_stripe_count); - CDEBUG(level, "objid "LPX64", magic 0x%08X, pattern %#X\n", - le64_to_cpu(lmm->lmm_object_id), le32_to_cpu(lmm->lmm_magic), - le32_to_cpu(lmm->lmm_pattern)); + CDEBUG(level, "objid "DOSTID", magic 0x%08X, pattern %#X\n", + POSTID(&lmm->lmm_oi), le32_to_cpu(lmm->lmm_magic), + le32_to_cpu(lmm->lmm_pattern)); CDEBUG(level,"stripe_size=0x%x, stripe_count=0x%x\n", le32_to_cpu(lmm->lmm_stripe_size), count); if (count == LOV_ALL_STRIPES) return; - LASSERT(count <= LOV_MAX_STRIPE_COUNT); - for (i = 0, lod = lmm->lmm_objects; i < count; i++, lod++) - CDEBUG(level, "stripe %u idx %u subobj "LPX64"/"LPX64"\n", - i, le32_to_cpu(lod->l_ost_idx), - le64_to_cpu(lod->l_object_seq), - le64_to_cpu(lod->l_object_id)); + + LASSERT(count <= LOV_MAX_STRIPE_COUNT); + for (i = 0, lod = lmm->lmm_objects; i < count; i++, lod++) { + struct ost_id oi; + ostid_le_to_cpu((struct ost_id *)&lod->l_ost_oi, &oi); + CDEBUG(level, "stripe %u idx %u subobj "DOSTID"\n", + i, le32_to_cpu(lod->l_ost_idx), POSTID(&oi)); + } } /* Shrink and/or grow reply buffers */ @@ -573,10 +575,10 @@ int mdt_fix_reply(struct mdt_thread_info *info) acl_size = body->aclsize; /* this replay - not send info to client */ - if (info->mti_spec.no_create == 1) { - md_size = 0; - acl_size = 0; - } + if (info->mti_spec.no_create) { + md_size = 0; + acl_size = 0; + } CDEBUG(D_INFO, "Shrink to md_size = %d cookie/acl_size = %d" " MDSCAPA = %llx, OSSCAPA = %llx\n", @@ -690,9 +692,9 @@ int mdt_handle_last_unlink(struct mdt_thread_info *info, struct mdt_object *mo, repbody->valid |= OBD_MD_FLCOOKIE; } - if (info->mti_mdt->mdt_opts.mo_oss_capa && - info->mti_exp->exp_connect_flags & OBD_CONNECT_OSS_CAPA && - repbody->valid & OBD_MD_FLEASIZE) { + if (info->mti_mdt->mdt_opts.mo_oss_capa && + exp_connect_flags(info->mti_exp) & OBD_CONNECT_OSS_CAPA && + repbody->valid & OBD_MD_FLEASIZE) { struct lustre_capa *capa; capa = req_capsule_server_get(info->mti_pill, &RMF_CAPA2); @@ -786,8 +788,8 @@ static __u64 mdt_attr_valid_xlate(__u64 in, struct mdt_reint_record *rr, if (in & ATTR_KILL_SGID) out |= LA_KILL_SGID; - if (in & MDS_OPEN_OWNEROVERRIDE) - ma->ma_attr_flags |= MDS_OPEN_OWNEROVERRIDE; + if (in & MDS_OPEN_OWNEROVERRIDE) + ma->ma_attr_flags |= MDS_OWNEROVERRIDE; if (in & ATTR_FORCE) ma->ma_attr_flags |= MDS_PERM_BYPASS; @@ -954,8 +956,8 @@ static int mdt_create_unpack(struct mdt_thread_info *info) attr->la_ctime = rec->cr_time; attr->la_mtime = rec->cr_time; attr->la_atime = rec->cr_time; - attr->la_valid = LA_MODE | LA_RDEV | LA_UID | LA_GID | - LA_CTIME | LA_MTIME | LA_ATIME; + attr->la_valid = LA_MODE | LA_RDEV | LA_UID | LA_GID | LA_TYPE | + LA_CTIME | LA_MTIME | LA_ATIME; memset(&sp->u, 0, sizeof(sp->u)); sp->sp_cr_flags = get_mrc_cr_flags(rec); @@ -1081,12 +1083,18 @@ static int mdt_unlink_unpack(struct mdt_thread_info *info) else ma->ma_attr_flags &= ~MDS_VTX_BYPASS; - info->mti_spec.no_create = !!req_is_replay(mdt_info_req(info)); + info->mti_spec.no_create = !!req_is_replay(mdt_info_req(info)); rc = mdt_dlmreq_unpack(info); RETURN(rc); } +static int mdt_rmentry_unpack(struct mdt_thread_info *info) +{ + info->mti_spec.sp_rm_entry = 1; + return mdt_unlink_unpack(info); +} + static int mdt_rename_unpack(struct mdt_thread_info *info) { struct lu_ucred *uc = mdt_ucred(info); @@ -1329,13 +1337,14 @@ static int mdt_setxattr_unpack(struct mdt_thread_info *info) typedef int (*reint_unpacker)(struct mdt_thread_info *info); static reint_unpacker mdt_reint_unpackers[REINT_MAX] = { - [REINT_SETATTR] = mdt_setattr_unpack, - [REINT_CREATE] = mdt_create_unpack, - [REINT_LINK] = mdt_link_unpack, - [REINT_UNLINK] = mdt_unlink_unpack, - [REINT_RENAME] = mdt_rename_unpack, - [REINT_OPEN] = mdt_open_unpack, - [REINT_SETXATTR] = mdt_setxattr_unpack + [REINT_SETATTR] = mdt_setattr_unpack, + [REINT_CREATE] = mdt_create_unpack, + [REINT_LINK] = mdt_link_unpack, + [REINT_UNLINK] = mdt_unlink_unpack, + [REINT_RENAME] = mdt_rename_unpack, + [REINT_OPEN] = mdt_open_unpack, + [REINT_SETXATTR] = mdt_setxattr_unpack, + [REINT_RMENTRY] = mdt_rmentry_unpack, }; int mdt_reint_unpack(struct mdt_thread_info *info, __u32 op)