From: Sebastien Buisson Date: Wed, 10 Jan 2018 14:37:24 +0000 (+0900) Subject: LU-10483 lustre: replace FMODE_{READ,WRITE} with MDS_* equivs X-Git-Tag: 2.10.59~12 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=5185ba6381ac459ad60e11952dc55c17e3167c5e LU-10483 lustre: replace FMODE_{READ,WRITE} with MDS_* equivs In file lustre/include/uapi/linux/lustre/lustre_user.h, replace direct use of FMODE_READ and FMODE_WRITE with MDS_* equivalents. That will avoid name clashes with the kernel symbols, and avoid problems if their values ever change. Signed-off-by: Sebastien Buisson Change-Id: I07e77d8d025c5ddb3dc4e085738645e20fb77d0c Reviewed-on: https://review.whamcloud.com/30824 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin --- diff --git a/lustre/include/lustre_mds.h b/lustre/include/lustre_mds.h index 32ab1ed..09a4101 100644 --- a/lustre/include/lustre_mds.h +++ b/lustre/include/lustre_mds.h @@ -70,7 +70,7 @@ struct md_rejig_data { static inline int md_should_create(__u64 flags) { - return !(flags & MDS_OPEN_DELAY_CREATE) && (flags & FMODE_WRITE) && + return !(flags & MDS_OPEN_DELAY_CREATE) && (flags & MDS_FMODE_WRITE) && !(flags & MDS_OPEN_LEASE); } diff --git a/lustre/include/uapi/linux/lustre/lustre_user.h b/lustre/include/uapi/linux/lustre/lustre_user.h index 1726b92..f516f9d 100644 --- a/lustre/include/uapi/linux/lustre/lustre_user.h +++ b/lustre/include/uapi/linux/lustre/lustre_user.h @@ -993,10 +993,8 @@ enum la_valid { LA_REMOTE_ATTR_SET = (LA_UID | LA_GID | LA_PROJID | LA_LAYOUT_VERSION) }; -#ifndef FMODE_READ -#define FMODE_READ 00000001 -#define FMODE_WRITE 00000002 -#endif +#define MDS_FMODE_READ 00000001 +#define MDS_FMODE_WRITE 00000002 #define MDS_FMODE_CLOSED 00000000 #define MDS_FMODE_EXEC 00000004 diff --git a/lustre/mdc/mdc_lib.c b/lustre/mdc/mdc_lib.c index 79cca6d..8802172 100644 --- a/lustre/mdc/mdc_lib.c +++ b/lustre/mdc/mdc_lib.c @@ -204,9 +204,12 @@ void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data, static inline __u64 mds_pack_open_flags(__u64 flags) { - __u64 cr_flags = (flags & (FMODE_READ | FMODE_WRITE | - MDS_OPEN_FL_INTERNAL)); + __u64 cr_flags = (flags & MDS_OPEN_FL_INTERNAL); + if (flags & FMODE_READ) + cr_flags |= MDS_FMODE_READ; + if (flags & FMODE_WRITE) + cr_flags |= MDS_FMODE_WRITE; if (flags & O_CREAT) cr_flags |= MDS_OPEN_CREAT; if (flags & O_EXCL) diff --git a/lustre/mdc/mdc_locks.c b/lustre/mdc/mdc_locks.c index 2c151df..bb1d0a3 100644 --- a/lustre/mdc/mdc_locks.c +++ b/lustre/mdc/mdc_locks.c @@ -264,12 +264,12 @@ mdc_intent_open_pack(struct obd_export *exp, struct lookup_intent *it, /* If inode is known, cancel conflicting OPEN locks. */ if (fid_is_sane(&op_data->op_fid2)) { if (it->it_flags & MDS_OPEN_LEASE) { /* try to get lease */ - if (it->it_flags & FMODE_WRITE) + if (it->it_flags & MDS_FMODE_WRITE) mode = LCK_EX; else mode = LCK_PR; } else { - if (it->it_flags & (FMODE_WRITE|MDS_OPEN_TRUNC)) + if (it->it_flags & (MDS_FMODE_WRITE | MDS_OPEN_TRUNC)) mode = LCK_CW; #ifdef FMODE_EXEC else if (it->it_flags & FMODE_EXEC) diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 7eb9950..dca2cd5 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -77,17 +77,18 @@ static int mdd_changelog_data_store_by_fid(const struct lu_env *env, static inline bool has_prefix(const char *str, const char *prefix); -static fmode_t flags_helper(int flags) +static unsigned int flags_helper(int flags) { - fmode_t mflags = 0; + unsigned int mflags = 0; if (flags & MDS_FMODE_EXEC) { mflags = MDS_FMODE_EXEC; } else { - if (flags & FMODE_READ) - mflags = FMODE_READ; - if (flags & (FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) - mflags |= FMODE_WRITE; + if (flags & MDS_FMODE_READ) + mflags = MDS_FMODE_READ; + if (flags & + (MDS_FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) + mflags |= MDS_FMODE_WRITE; } return mflags; @@ -2824,9 +2825,9 @@ int accmode(const struct lu_env *env, const struct lu_attr *la, int flags) return 0; } - if (flags & FMODE_READ) + if (flags & MDS_FMODE_READ) res |= MAY_READ; - if (flags & (FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) + if (flags & (MDS_FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) res |= MAY_WRITE; if (flags & MDS_FMODE_EXEC) res = MAY_EXEC; @@ -2864,7 +2865,7 @@ static int mdd_open_sanity_check(const struct lu_env *env, /* For writing append-only file must open it with append mode. */ if (attr->la_flags & LUSTRE_APPEND_FL) { - if ((flag & FMODE_WRITE) && !(flag & MDS_OPEN_APPEND)) + if ((flag & MDS_FMODE_WRITE) && !(flag & MDS_OPEN_APPEND)) RETURN(-EPERM); if (flag & MDS_OPEN_TRUNC) RETURN(-EPERM); @@ -3128,7 +3129,7 @@ out: */ if (!rc && !blocked && ((!(mdd->mdd_cl.mc_mask & (1 << CL_OPEN)) && - (mode & (FMODE_WRITE | MDS_OPEN_APPEND | MDS_OPEN_TRUNC))) || + (mode & (MDS_FMODE_WRITE | MDS_OPEN_APPEND | MDS_OPEN_TRUNC))) || ((mdd->mdd_cl.mc_mask & (1 << CL_OPEN)) && last_close_by_uid)) && !(ma->ma_valid & MA_FLAGS && ma->ma_attr_flags & MDS_RECOV_OPEN)) { if (handle == NULL) { diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 5829d1f..e349367 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -5807,7 +5807,7 @@ static int mdt_export_cleanup(struct obd_export *exp) * archive request into a noop if it's not actually * dirty. */ - if (mfd->mfd_mode & FMODE_WRITE) + if (mfd->mfd_mode & MDS_FMODE_WRITE) rc = mdt_ctxt_add_dirty_flag(&env, info, mfd); /* Don't unlink orphan on failover umount, LU-184 */ diff --git a/lustre/mdt/mdt_open.c b/lustre/mdt/mdt_open.c index 5f2d340..0d35f29 100644 --- a/lustre/mdt/mdt_open.c +++ b/lustre/mdt/mdt_open.c @@ -382,7 +382,7 @@ static int mdt_mfd_open(struct mdt_thread_info *info, struct mdt_object *p, repbody->mbo_valid |= OBD_MD_FLDIREA | OBD_MD_MEA; } - if (flags & FMODE_WRITE) + if (flags & MDS_FMODE_WRITE) rc = mdt_write_get(o); else if (flags & MDS_FMODE_EXEC) rc = mdt_write_deny(o); @@ -489,7 +489,7 @@ static int mdt_mfd_open(struct mdt_thread_info *info, struct mdt_object *p, RETURN(rc); err_out: - if (flags & FMODE_WRITE) + if (flags & MDS_FMODE_WRITE) mdt_write_put(o); else if (flags & MDS_FMODE_EXEC) mdt_write_allow(o); @@ -584,7 +584,7 @@ static int mdt_finish_open(struct mdt_thread_info *info, /* This can't be done earlier, we need to return reply body */ if (isdir) { - if (flags & (MDS_OPEN_CREAT | FMODE_WRITE)) { + if (flags & (MDS_OPEN_CREAT | MDS_FMODE_WRITE)) { /* We are trying to create or write an existing dir. */ RETURN(-EISDIR); } @@ -866,7 +866,7 @@ static int mdt_object_open_lock(struct mdt_thread_info *info, down_read(&obj->mot_open_sem); if (open_flags & MDS_OPEN_LOCK) { - if (open_flags & FMODE_WRITE) + if (open_flags & MDS_FMODE_WRITE) lm = LCK_CW; else if (open_flags & MDS_FMODE_EXEC) lm = LCK_PR; @@ -875,7 +875,7 @@ static int mdt_object_open_lock(struct mdt_thread_info *info, *ibits = MDS_INODELOCK_LOOKUP | MDS_INODELOCK_OPEN; } else if (atomic_read(&obj->mot_lease_count) > 0) { - if (open_flags & FMODE_WRITE) + if (open_flags & MDS_FMODE_WRITE) lm = LCK_CW; else lm = LCK_CR; @@ -886,7 +886,7 @@ static int mdt_object_open_lock(struct mdt_thread_info *info, lhc = &info->mti_lh[MDT_LH_LOCAL]; } else if (dom_lock) { - lm = (open_flags & FMODE_WRITE) ? LCK_PW : LCK_PR; + lm = (open_flags & MDS_FMODE_WRITE) ? LCK_PW : LCK_PR; *ibits = MDS_INODELOCK_DOM; } @@ -1306,7 +1306,7 @@ int mdt_reint_open(struct mdt_thread_info *info, struct mdt_lock_handle *lhc) info->mti_spec.u.sp_ea.eadata == NULL) GOTO(out, result = err_serious(-EINVAL)); - if (create_flags & FMODE_WRITE && + if (create_flags & MDS_FMODE_WRITE && exp_connect_flags(req->rq_export) & OBD_CONNECT_RDONLY) GOTO(out, result = -EROFS); @@ -1837,7 +1837,7 @@ static int mdt_hsm_release(struct mdt_thread_info *info, struct mdt_object *o, orp_ma->ma_lmm_size = ma->ma_lmm_size; orp_ma->ma_valid = MA_INODE | MA_LOV; orphan = mdt_orphan_open(info, info->mti_mdt, &data->cd_fid, orp_ma, - FMODE_WRITE); + MDS_FMODE_WRITE); if (IS_ERR(orphan)) { CERROR("%s: cannot open orphan file "DFID": rc = %ld\n", mdt_obd_name(info->mti_mdt), PFID(&data->cd_fid), @@ -1882,7 +1882,7 @@ out_layout_lock: out_close: /* Close orphan object anyway */ rc2 = mo_close(info->mti_env, mdt_object_child(orphan), orp_ma, - FMODE_WRITE); + MDS_FMODE_WRITE); if (rc2 < 0) CERROR("%s: error closing volatile file "DFID": rc = %d\n", mdt_obd_name(info->mti_mdt), PFID(&data->cd_fid), rc2); @@ -2243,13 +2243,14 @@ int mdt_mfd_close(struct mdt_thread_info *info, struct mdt_file_data *mfd) break; } - if (mode & FMODE_WRITE) + if (mode & MDS_FMODE_WRITE) mdt_write_put(o); else if (mode & MDS_FMODE_EXEC) mdt_write_allow(o); /* Update atime on close only. */ - if ((mode & MDS_FMODE_EXEC || mode & FMODE_READ || mode & FMODE_WRITE) + if ((mode & MDS_FMODE_EXEC || mode & MDS_FMODE_READ || + mode & MDS_FMODE_WRITE) && (ma->ma_valid & MA_INODE) && (ma->ma_attr.la_valid & LA_ATIME)) { /* Set the atime only. */ ma->ma_valid = MA_INODE; diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c index 9ea1d91..567e602 100644 --- a/lustre/obdclass/genops.c +++ b/lustre/obdclass/genops.c @@ -2517,7 +2517,7 @@ static inline bool obd_skip_mod_rpc_slot(const struct lookup_intent *it) if (it != NULL && (it->it_op == IT_GETATTR || it->it_op == IT_LOOKUP || it->it_op == IT_READDIR || - (it->it_op == IT_LAYOUT && !(it->it_flags & FMODE_WRITE)))) + (it->it_op == IT_LAYOUT && !(it->it_flags & MDS_FMODE_WRITE)))) return true; return false; } diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index 6e25a02..41d2b3e 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -1714,7 +1714,7 @@ static int echo_create_md_object(const struct lu_env *env, memset(spec, 0, sizeof(*spec)); echo_set_lmm_size(env, ld, ma); if (stripe_count != 0) { - spec->sp_cr_flags |= FMODE_WRITE; + spec->sp_cr_flags |= MDS_FMODE_WRITE; if (stripe_count != -1) { if (S_ISDIR(mode)) { struct lmv_user_md *lmu; diff --git a/lustre/utils/lfs.c b/lustre/utils/lfs.c index 3242c5b..80ae711 100644 --- a/lustre/utils/lfs.c +++ b/lustre/utils/lfs.c @@ -6337,10 +6337,10 @@ static int lfs_changelog(int argc, char **argv) if (omd->cr_openflags & MDS_FMODE_EXEC) { mode[2] = 'x'; } else { - if (omd->cr_openflags & FMODE_READ) + if (omd->cr_openflags & MDS_FMODE_READ) mode[0] = 'r'; if (omd->cr_openflags & - (FMODE_WRITE | + (MDS_FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) mode[1] = 'w'; diff --git a/lustre/utils/llog_reader.c b/lustre/utils/llog_reader.c index 88f2880..afdfb53 100644 --- a/lustre/utils/llog_reader.c +++ b/lustre/utils/llog_reader.c @@ -711,10 +711,10 @@ void print_changelog_rec(struct llog_changelog_rec *rec) mode[2] = 'x'; } else { if (__le32_to_cpu(omd->cr_openflags) & - FMODE_READ) + MDS_FMODE_READ) mode[0] = 'r'; if (__le32_to_cpu(omd->cr_openflags) & - (FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) + (MDS_FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) mode[1] = 'w'; }