diff options
Diffstat (limited to 'xlators/protocol')
-rw-r--r-- | xlators/protocol/client/src/client-messages.h | 10 | ||||
-rw-r--r-- | xlators/protocol/client/src/client-rpc-fops.c | 9 | ||||
-rw-r--r-- | xlators/protocol/server/src/server-rpc-fops.c | 7 |
3 files changed, 23 insertions, 3 deletions
diff --git a/xlators/protocol/client/src/client-messages.h b/xlators/protocol/client/src/client-messages.h index a4b391b8331..db27661715b 100644 --- a/xlators/protocol/client/src/client-messages.h +++ b/xlators/protocol/client/src/client-messages.h @@ -45,7 +45,7 @@ */ #define GLFS_PC_BASE GLFS_MSGID_COMP_PC -#define GLFS_PC_NUM_MESSAGES 63 +#define GLFS_PC_NUM_MESSAGES 65 #define GLFS_PC_MSGID_END (GLFS_PC_BASE + GLFS_NUM_MESSAGES + 1) /* Messages with message IDs */ #define glfs_msg_start_x GLFS_PC_BASE, "Invalid: Start of messages" @@ -619,6 +619,14 @@ */ #define PC_MSG_CHILD_STATUS (GLFS_PC_BASE + 64) +/*! + * @messageid + * @diagnosis + * @recommendedaction + * + */ +#define PC_MSG_GFID_NULL (GLFS_PC_BASE + 65) + /*------------*/ #define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages" diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c index e1fee8c7c66..c95a973ec72 100644 --- a/xlators/protocol/client/src/client-rpc-fops.c +++ b/xlators/protocol/client/src/client-rpc-fops.c @@ -4110,6 +4110,15 @@ client3_3_mkdir (call_frame_t *frame, xlator_t *this, args = data; + if (!args->xdata || !dict_get (args->xdata, "gfid-req")) { + op_errno = EPERM; + gf_msg_callingfn (this->name, GF_LOG_WARNING, op_errno, + PC_MSG_GFID_NULL, "mkdir: %s is received " + "without gfid-req %p", args->loc->path, + args->xdata); + goto unwind; + } + local = mem_get0 (this->local_pool); if (!local) { op_errno = ENOMEM; diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c index 7056af1d437..b9236705532 100644 --- a/xlators/protocol/server/src/server-rpc-fops.c +++ b/xlators/protocol/server/src/server-rpc-fops.c @@ -491,20 +491,23 @@ server_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, server_state_t *state = NULL; inode_t *link_inode = NULL; rpcsvc_request_t *req = NULL; + client_t *client = NULL; GF_PROTOCOL_DICT_SERIALIZE (this, xdata, &rsp.xdata.xdata_val, rsp.xdata.xdata_len, op_errno, out); state = CALL_STATE (frame); + client = frame->root->client; if (op_ret < 0) { gf_msg (this->name, fop_log_level (GF_FOP_MKDIR, op_errno), op_errno, PS_MSG_DIR_INFO, - "%"PRId64": MKDIR %s (%s/%s) ==> (%s)", + "%"PRId64": MKDIR %s (%s/%s) client: %s", frame->root->unique, (state->loc.path) ? state->loc.path : "", uuid_utoa (state->resolve.pargfid), - state->resolve.bname, strerror (op_errno)); + state->resolve.bname, + (!client || !client->client_uid) ? "-":client->client_uid); goto out; } |