diff options
| author | Pranith Kumar K <pkarampu@redhat.com> | 2016-03-14 10:59:38 +0530 | 
|---|---|---|
| committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2016-06-16 23:52:55 -0700 | 
| commit | 02e1ca67027e6fbbc9e854ac9def183745488022 (patch) | |
| tree | 79a66180dc80f83633c908d0011615ba1987eaba /xlators/protocol/server/src | |
| parent | 0fea541b0b217fc3c76e6a36577b99be71e32d56 (diff) | |
dht/afr/client/posix: Fail mkdir without gfid-req
Do not allow directory creations without gfids as
after the directories are created, operations
on them fail anyway. So it is better to fail mkdir.
 >BUG: 1317361
 >Change-Id: I8f8e3b38bbded1960b7215bac0432500f7e78038
 >Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
 >Reviewed-on: http://review.gluster.org/13690
 >Smoke: Gluster Build System <jenkins@build.gluster.com>
 >Reviewed-by: Krutika Dhananjay <kdhananj@redhat.com>
 >CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
 >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
 >(cherry picked from commit b246b07896fefb261c9fb07f3f29f0d03b81b88d)
Change-Id: Ibf9c84add7265e3e1755a37958e1de38307624b2
BUG: 1332372
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/14188
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/protocol/server/src')
| -rw-r--r-- | xlators/protocol/server/src/server-rpc-fops.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c index 25ffc0d9e73..954374b6011 100644 --- a/xlators/protocol/server/src/server-rpc-fops.c +++ b/xlators/protocol/server/src/server-rpc-fops.c @@ -496,20 +496,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;          }  | 
