Commit 7d2fa4cb authored by Ben Evans's avatar Ben Evans Committed by Greg Kroah-Hartman
Browse files

staging: lustre: uapi: return error code for ostid_set_id



Currently the function ostid_set_id() just logs an error
and just keeps going. This function is also used by user
land tools so having special lustre kernel debugging
code is not desired. So instead just return an error
code and have the calling kernel code print the error
instead.

Signed-off-by: default avatarBen Evans <bevans@cray.com>
Signed-off-by: default avatarJames Simmons <uja.ornl@yahoo.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6401
Reviewed-on: https://review.whamcloud.com/22712
Reviewed-on: https://review.whamcloud.com/24569


Reviewed-by: default avatarJames Simmons <uja.ornl@yahoo.com>
Reviewed-by: default avatarFrank Zago <fzago@cray.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3c42fb12
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -515,32 +515,25 @@ static inline void ostid_set_seq_llog(struct ost_id *oi)
 * Note: we need check oi_seq to decide where to set oi_id,
 * so oi_seq should always be set ahead of oi_id.
 */
static inline void ostid_set_id(struct ost_id *oi, __u64 oid)
static inline int ostid_set_id(struct ost_id *oi, __u64 oid)
{
	if (fid_seq_is_mdt0(oi->oi.oi_seq)) {
		if (oid >= IDIF_MAX_OID) {
			CERROR("Too large OID %#llx to set MDT0 " DOSTID "\n",
			       oid, POSTID(oi));
			return;
		}
		if (oid >= IDIF_MAX_OID)
			return -E2BIG;
		oi->oi.oi_id = oid;
	} else if (fid_is_idif(&oi->oi_fid)) {
		if (oid >= IDIF_MAX_OID) {
			CERROR("Too large OID %#llx to set IDIF " DOSTID "\n",
			       oid, POSTID(oi));
			return;
		}
		if (oid >= IDIF_MAX_OID)
			return -E2BIG;
		oi->oi_fid.f_seq = fid_idif_seq(oid,
						fid_idif_ost_idx(&oi->oi_fid));
		oi->oi_fid.f_oid = oid;
		oi->oi_fid.f_ver = oid >> 48;
	} else {
		if (oid >= OBIF_MAX_OID) {
			CERROR("Bad %llu to set " DOSTID "\n", oid, POSTID(oi));
			return;
		}
		if (oid >= OBIF_MAX_OID)
			return -E2BIG;
		oi->oi_fid.f_oid = oid;
	}
	return 0;
}

static inline int fid_set_id(struct lu_fid *fid, __u64 oid)
+5 −2
Original line number Diff line number Diff line
@@ -1102,8 +1102,11 @@ static int echo_create_object(const struct lu_env *env, struct echo_device *ed,
		return -EINVAL;
	}

	if (!ostid_id(&oa->o_oi))
		ostid_set_id(&oa->o_oi, ++last_object_id);
	if (!ostid_id(&oa->o_oi)) {
		rc = ostid_set_id(&oa->o_oi, ++last_object_id);
		if (rc)
			goto failed;
	}

	rc = obd_create(env, ec->ec_exp, oa);
	if (rc != 0) {
+8 −1
Original line number Diff line number Diff line
@@ -369,7 +369,14 @@ static void osc_req_attr_set(const struct lu_env *env, struct cl_object *obj,
		oa->o_valid |= OBD_MD_FLGROUP;
	}
	if (flags & OBD_MD_FLID) {
		ostid_set_id(&oa->o_oi, ostid_id(&oinfo->loi_oi));
		int rc;

		rc = ostid_set_id(&oa->o_oi, ostid_id(&oinfo->loi_oi));
		if (rc) {
			CERROR("Bad %llu to set " DOSTID " : rc %d\n",
			       (unsigned long long)ostid_id(&oinfo->loi_oi),
			       POSTID(&oa->o_oi), rc);
		}
		oa->o_valid |= OBD_MD_FLID;
	}
	if (flags & OBD_MD_FLHANDLE) {