From 488f112297cfac795b56ddbcd7833659edba93c4 Mon Sep 17 00:00:00 2001 From: huanghua Date: Tue, 25 Jul 2006 07:57:25 +0000 Subject: [PATCH] fixed some bug during testing: (1) add osd_mksym() and osd_mknod() empty functions to avoid OOPS; (2) temporarily commentted out a sanity checking in lsm_lmm_verify_common(); (3) a small fix in mdt_reint_unlink(). --- lustre/lov/lov_ea.c | 4 +++- lustre/mdt/mdt_handler.c | 1 + lustre/mdt/mdt_reint.c | 14 ++++++-------- lustre/osd/osd_handler.c | 16 +++++++++++++--- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/lustre/lov/lov_ea.c b/lustre/lov/lov_ea.c index de3dd8d..980ff24 100755 --- a/lustre/lov/lov_ea.c +++ b/lustre/lov/lov_ea.c @@ -57,12 +57,14 @@ static int lsm_lmm_verify_common(struct lov_mds_md *lmm, int lmm_bytes, return -EINVAL; } +/* FIXME: commetted out by huanghua@clusterfs.com */ +/* if (lmm->lmm_object_id == 0) { CERROR("zero object id\n"); lov_dump_lmm_v1(D_WARNING, lmm); return -EINVAL; } - +*/ if (lmm->lmm_pattern != cpu_to_le32(LOV_PATTERN_RAID0)) { CERROR("bad striping pattern\n"); lov_dump_lmm_v1(D_WARNING, lmm); diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 98750e9..f79300c 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -586,6 +586,7 @@ static int mdt_readpage(struct mdt_thread_info *info) int rc; int i; ENTRY; + RETURN(-EOPNOTSUPP); if (MDT_FAIL_CHECK(OBD_FAIL_MDS_READPAGE_PACK)) RETURN(-ENOMEM); diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index b779dc3..b65cc61 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -233,8 +233,8 @@ static int mdt_reint_unlink(struct mdt_thread_info *info) ENTRY; - DEBUG_REQ(D_INODE, req, "unlink "DFID3"/"DFID3, PFID3(rr->rr_fid1), - PFID3(rr->rr_fid2)); + DEBUG_REQ(D_INODE, req, "unlink "DFID3"/%s\n", PFID3(rr->rr_fid1), + rr->rr_name); /* MDS_CHECK_RESENT here */ @@ -278,6 +278,7 @@ static int mdt_reint_unlink(struct mdt_thread_info *info) GOTO(out_unlock_child, rc); rc = mdt_handle_last_unlink(info, mc, &RQF_MDS_REINT_UNLINK_LAST); + GOTO(out_unlock_child, rc); out_unlock_child: mdt_object_unlock_put(info, mc, lhc, rc); @@ -439,12 +440,12 @@ static int mdt_reint_rename(struct mdt_thread_info *info) GOTO(out, rc = PTR_ERR(msrcdir)); /*step 2: find & lock the target dir*/ + lh_tgtdirp = &info->mti_lh[MDT_LH_CHILD]; + lh_tgtdirp->mlh_mode = LCK_EX; if (lu_fid_eq(rr->rr_fid1, rr->rr_fid2)) { mdt_object_get(info->mti_ctxt, msrcdir); mtgtdir = msrcdir; } else { - lh_tgtdirp = &info->mti_lh[MDT_LH_CHILD]; - lh_tgtdirp->mlh_mode = LCK_EX; mtgtdir = mdt_object_find_lock(info, rr->rr_fid2, lh_tgtdirp, MDS_INODELOCK_UPDATE); if (IS_ERR(mtgtdir)) @@ -496,10 +497,7 @@ out_unlock_new: out_unlock_old: mdt_object_unlock_put(info, mold, lh_oldp, rc); out_unlock_target: - if (mtgtdir == msrcdir) - mdt_object_put(info->mti_ctxt, mtgtdir); - else - mdt_object_unlock_put(info, mtgtdir, lh_tgtdirp, rc); + mdt_object_unlock_put(info, mtgtdir, lh_tgtdirp, rc); out_unlock_source: mdt_object_unlock_put(info, msrcdir, lh_srcdirp, rc); out: diff --git a/lustre/osd/osd_handler.c b/lustre/osd/osd_handler.c index 6893a51..e8df2a3 100644 --- a/lustre/osd/osd_handler.c +++ b/lustre/osd/osd_handler.c @@ -689,12 +689,22 @@ static int osd_mkreg(struct osd_thread_info *info, struct osd_object *obj, S_IFREG | (attr->la_mode & (S_IRWXUGO|S_ISVTX)), th); } +static int osd_mksym(struct osd_thread_info *info, struct osd_object *obj, + struct lu_attr *attr, struct thandle *th) +{ + LASSERT(S_ISLNK(attr->la_mode)); + return -EOPNOTSUPP; +} + +static int osd_mknod(struct osd_thread_info *info, struct osd_object *obj, + struct lu_attr *attr, struct thandle *th) +{ + return -EOPNOTSUPP; +} + typedef int (*osd_obj_type_f)(struct osd_thread_info *, struct osd_object *, struct lu_attr *, struct thandle *); -osd_obj_type_f osd_mksym = NULL; -osd_obj_type_f osd_mknod = NULL; - static osd_obj_type_f osd_create_type_f(__u32 mode) { osd_obj_type_f result; -- 1.8.3.1