diff options
author | vmallika <vmallika@redhat.com> | 2015-07-07 16:03:26 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2015-07-09 21:08:54 -0700 |
commit | 7488acff20ef6ff8df76af07547695e0106f32ca (patch) | |
tree | 65e9be1cb74f77a359eed2148387d5310b8991dc /xlators | |
parent | 01b82c66155a8d92893a386d7a314c95e0f0702b (diff) |
quota/marker: set lk_owner when taking lock on parent in rename
Before doing a rename operation marker takes inode lock on the file
parent,
here lk_owner is NULL and this can cause accounting problem with
multiple rename on the same directory
This patch fix the problem by setting lk_owner
Change-Id: Ibb789e39b2833e425d0a5fca85282ff1465206cb
BUG: 1240598
Signed-off-by: vmallika <vmallika@redhat.com>
Reviewed-on: http://review.gluster.org/11561
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/features/marker/src/marker.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index 2943f3b067d..b5e41523747 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -1593,6 +1593,9 @@ marker_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, local->xdata = dict_ref (xdata); + if (is_lk_owner_null (&frame->root->lk_owner)) + set_lk_owner_from_ptr (&frame->root->lk_owner, frame->root); + STACK_WIND (frame, marker_rename_inodelk_cbk, FIRST_CHILD(this), |