From: James Simmons <jsimmons@infradead.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
devel@driverdev.osuosl.org,
Andreas Dilger <andreas.dilger@intel.com>,
Oleg Drokin <oleg.drokin@intel.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Lustre Development List <lustre-devel@lists.lustre.org>,
Ben Evans <bevans@cray.com>, James Simmons <uja.ornl@yahoo.com>,
James Simmons <jsimmons@infradead.org>
Subject: [PATCH 03/64] staging: lustre: uapi: return error code for ostid_set_id
Date: Mon, 14 Aug 2017 11:46:31 -0400 [thread overview]
Message-ID: <1502725652-26280-4-git-send-email-jsimmons@infradead.org> (raw)
In-Reply-To: <1502725652-26280-1-git-send-email-jsimmons@infradead.org>
From: Ben Evans <bevans@cray.com>
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: Ben Evans <bevans@cray.com>
Signed-off-by: James 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: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Frank Zago <fzago@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
.../lustre/lustre/include/lustre/lustre_idl.h | 23 ++++++++--------------
.../staging/lustre/lustre/obdecho/echo_client.c | 7 +++++--
drivers/staging/lustre/lustre/osc/osc_object.c | 9 ++++++++-
3 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
index 1e8ecdf..d70495d 100644
--- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
+++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
@@ -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)
diff --git a/drivers/staging/lustre/lustre/obdecho/echo_client.c b/drivers/staging/lustre/lustre/obdecho/echo_client.c
index 1c4a8fe..6cbe58f3 100644
--- a/drivers/staging/lustre/lustre/obdecho/echo_client.c
+++ b/drivers/staging/lustre/lustre/obdecho/echo_client.c
@@ -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) {
diff --git a/drivers/staging/lustre/lustre/osc/osc_object.c b/drivers/staging/lustre/lustre/osc/osc_object.c
index fa621bd..945ae6e 100644
--- a/drivers/staging/lustre/lustre/osc/osc_object.c
+++ b/drivers/staging/lustre/lustre/osc/osc_object.c
@@ -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) {
--
1.8.3.1
next prev parent reply other threads:[~2017-08-14 16:05 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-14 15:46 [PATCH 00/64] staging: lustre: uapi: normalize the lustre headers James Simmons
2017-08-14 15:46 ` [PATCH 01/64] staging: lustre: uapi: Move functions out of lustre_idl.h James Simmons
2017-08-14 15:46 ` [PATCH 02/64] staging: lustre: uapi: remove unused functions for lustre_fid.h James Simmons
2017-08-14 15:46 ` James Simmons [this message]
2017-08-14 15:46 ` [PATCH 04/64] staging: lustre: uapi: update URL doc link in lustre_fid.h James Simmons
2017-08-14 15:46 ` [PATCH 05/64] staging: lustre: uapi: move lu_fid, ost_id funcs out of lustre_idl.h James Simmons
2017-08-14 15:46 ` [PATCH 06/64] staging: lustre: uapi: remove unused function in lustre_disk.h James Simmons
2017-08-14 15:46 ` [PATCH 07/64] staging: lustre: uapi: remove userland version of obd_ioctl_*() James Simmons
2017-08-14 15:46 ` [PATCH 08/64] staging: lustre: uapi: remove obd_ioctl_freedata() wrapper James Simmons
2017-08-14 15:46 ` [PATCH 09/64] staging: lustre: uapi: remove obd_ioctl_popdata() wrapper James Simmons
2017-08-14 15:46 ` [PATCH 10/64] staging: lustre: uapi: move obd_ioctl_getdata() declaration James Simmons
2017-08-14 15:46 ` [PATCH 11/64] staging: lustre: uapi: move obd_ioctl_is_invalid() to linux-module.c James Simmons
2017-08-14 15:46 ` [PATCH 12/64] staging: lustre: uapi: move lustre_ioctl.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 13/64] staging: lustre: uapi: use __ALIGN_KERNEL for lustre_ioctl.h James Simmons
2017-08-14 15:46 ` [PATCH 14/64] staging: lustre: uapi: cleanup headers " James Simmons
2017-08-14 15:46 ` [PATCH 15/64] staging: lustre: uapi: label lustre_ioctl.h as a UAPI header James Simmons
2017-08-14 15:46 ` [PATCH 16/64] staging: lustre: uapi: move kernel only prototypes out of lustre_param.h James Simmons
2017-08-14 15:46 ` [PATCH 17/64] staging: lustre: uapi: remove included headers " James Simmons
2017-08-14 15:46 ` [PATCH 18/64] staging: lustre: uapi: move lustre_param.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 19/64] staging: lustre: uapi: label lustre_param.h as an uapi header James Simmons
2017-08-14 15:46 ` [PATCH 20/64] staging: lustre: uapi: style cleanups for lustre_param.h James Simmons
2017-08-14 15:46 ` [PATCH 21/64] staging: lustre: uapi: remove lustre_cfg_free wrapper James Simmons
2017-08-14 15:46 ` [PATCH 22/64] staging: lustre: uapi: don't memory allocate in UAPI header James Simmons
2017-08-14 15:46 ` [PATCH 23/64] staging: lustre: uapi: move lustre_cfg_string() to obd_config.c James Simmons
2017-08-14 15:46 ` [PATCH 24/64] staging: lustre: obdclass: no need to check for kfree James Simmons
2017-08-14 15:46 ` [PATCH 25/64] staging: lustre: uapi: move lustre_cfg.h to uapi directory James Simmons
2017-08-14 15:46 ` [PATCH 26/64] staging: lustre: uapi: remove need for libcfs.h from lustre_cfg.h James Simmons
2017-08-14 15:46 ` [PATCH 27/64] staging: lustre: uapi: change variable type to match James Simmons
2017-08-14 15:46 ` [PATCH 28/64] staging: lustre: uapi: check if argument for lustre_cfg_buf() is NULL James Simmons
2017-08-14 15:46 ` [PATCH 29/64] staging: lustre: uapi: style cleanup of lustre_cfg.h James Simmons
2017-08-14 15:46 ` [PATCH 30/64] staging: lustre: uapi: label lustre_cfg.h as an uapi header James Simmons
2017-08-14 15:46 ` [PATCH 31/64] staging: lustre: libcfs: remove htonl hack in libcfs.h James Simmons
2017-08-14 15:47 ` [PATCH 32/64] staging: lustre: libcfs: remove LOGL and LOGU macros James Simmons
2017-08-14 15:47 ` [PATCH 33/64] staging: lustre: libcfs: create libcfs_debug.h UAPI header James Simmons
2017-08-14 15:47 ` [PATCH 34/64] staging: lustre: socklnd: create socklnd.h " James Simmons
2017-08-14 15:47 ` [PATCH 35/64] staging: lustre: lnet: delete lnet.h James Simmons
2017-08-14 15:47 ` [PATCH 36/64] staging: lustre: lnet: migrate headers to lnet uapi directory James Simmons
2017-08-14 15:47 ` [PATCH 37/64] staging: lustre: libcfs: sort headers in libcfs.h James Simmons
2017-08-14 15:47 ` [PATCH 38/64] staging: lustre: lnet: remove userland function prototype in lnetctl.h James Simmons
2017-08-14 15:47 ` [PATCH 39/64] staging: lustre: lnet: remove BIT macro from lnetctl.h James Simmons
2017-08-14 15:47 ` [PATCH 40/64] staging: lustre: uapi: remove libcfs.h from lustre_id.h/lustre_user.h James Simmons
2017-08-14 15:47 ` [PATCH 41/64] staging: lustre: uapi: migrate remaining uapi headers to uapi directory James Simmons
2017-08-14 15:47 ` [PATCH 42/64] staging: lustre: uapi: remove CONFIG_LUSTRE_OBD_MAX_IOCTL James Simmons
2017-08-14 15:47 ` [PATCH 43/64] staging: lustre: uapi: use proper byteorder functions in lustre_idl.h James Simmons
2017-08-14 15:47 ` [PATCH 44/64] staging: lustre: uapi: remove BIT macro from UAPI headers James Simmons
2017-08-14 15:47 ` [PATCH 45/64] staging: lustre: fid: add include path to Makefile James Simmons
2017-08-14 15:47 ` [PATCH 46/64] staging: lustre: fld: " James Simmons
2017-08-14 15:47 ` [PATCH 47/64] staging: lustre: ptlrpc: " James Simmons
2017-08-14 15:47 ` [PATCH 48/64] staging: lustre: llite: " James Simmons
2017-08-14 15:47 ` [PATCH 49/64] staging: lustre: lmv: " James Simmons
2017-08-14 15:47 ` [PATCH 50/64] staging: lustre: lov: " James Simmons
2017-08-14 15:47 ` [PATCH 51/64] staging: lustre: mdc: " James Simmons
2017-08-14 15:47 ` [PATCH 52/64] staging: lustre: mgc: " James Simmons
2017-08-14 15:47 ` [PATCH 53/64] staging: lustre: obdclass: " James Simmons
2017-08-14 15:47 ` [PATCH 54/64] staging: lustre: obdecho: " James Simmons
2017-08-14 15:47 ` [PATCH 55/64] staging: lustre: osc: " James Simmons
2017-08-14 15:47 ` [PATCH 56/64] staging: lustre: lustre: cleanup paths for lustre internal headers James Simmons
2017-08-14 15:47 ` [PATCH 57/64] staging: lustre: lustre: cleanup paths for lustre UAPI headers James Simmons
2017-08-14 15:47 ` [PATCH 58/64] staging: lustre: lnet: selftest: add include path to Makefile James Simmons
2017-08-14 15:47 ` [PATCH 59/64] staging: lustre: lnet: " James Simmons
2017-08-14 15:47 ` [PATCH 60/64] staging: lustre: ko2iblnd: " James Simmons
2017-08-14 15:47 ` [PATCH 61/64] staging: lustre: ksocklnd: " James Simmons
2017-08-14 15:47 ` [PATCH 62/64] staging: lustre: libcfs: " James Simmons
2017-08-14 15:47 ` [PATCH 63/64] staging: lustre: libcfs: cleanup paths for libcfs headers James Simmons
2017-08-14 15:47 ` [PATCH 64/64] staging: lustre: lnet: cleanup paths for all LNet headers James Simmons
2017-08-17 16:22 ` [PATCH 00/64] staging: lustre: uapi: normalize the lustre headers Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1502725652-26280-4-git-send-email-jsimmons@infradead.org \
--to=jsimmons@infradead.org \
--cc=andreas.dilger@intel.com \
--cc=bevans@cray.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lustre-devel@lists.lustre.org \
--cc=oleg.drokin@intel.com \
--cc=uja.ornl@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®