diff options
author | Mohammed Rafi KC <rkavunga@redhat.com> | 2015-12-10 20:13:22 +0530 |
---|---|---|
committer | Dan Lambright <dlambrig@redhat.com> | 2015-12-22 05:11:56 -0800 |
commit | d3fd13688f850e58bfa517a4c2d17e8fa4343dcf (patch) | |
tree | ce15eba725db180ed6904f4cc53932dc25a9c360 /xlators/cluster/dht/src/tier-common.h | |
parent | 3fcead2de7bcdb4e1312f37e7e750abd8d9d9770 (diff) |
tier:delete the linkfile if data file creation fails
If we are creating data file in a hot subvolume
then we will create a linkfile in cold subvolume.
Linkfile creation happens first. If linkfile creation
was successful and data file creation failed, then
linkfile in cold subvolume will become stale.
This patch will delete the linkfile as well, if data
file creation fails.
Also this code duplicates dht_create to make tier_create
Change-Id: I377a90dad47f288e9576c7323b23cf694a91a7a3
BUG: 1290677
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/12948
Reviewed-by: N Balachandran <nbalacha@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/tier-common.h')
-rw-r--r-- | xlators/cluster/dht/src/tier-common.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/xlators/cluster/dht/src/tier-common.h b/xlators/cluster/dht/src/tier-common.h index 81a0c96411d..17cddcdd3e4 100644 --- a/xlators/cluster/dht/src/tier-common.h +++ b/xlators/cluster/dht/src/tier-common.h @@ -11,6 +11,32 @@ #ifndef _TIER_COMMON_H_ #define _TIER_COMMON_H_ /* Function definitions */ +int +tier_create_unlink_stale_linkto_cbk (call_frame_t *frame, void *cookie, + xlator_t *this, int op_ret, int op_errno, + struct iatt *preparent, + struct iatt *postparent, dict_t *xdata); + +int +tier_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, + int op_ret, int op_errno, + fd_t *fd, inode_t *inode, struct iatt *stbuf, + struct iatt *preparent, struct iatt *postparent, + dict_t *xdata); + +int +tier_create_linkfile_create_cbk (call_frame_t *frame, void *cookie, + xlator_t *this, + int32_t op_ret, int32_t op_errno, + inode_t *inode, struct iatt *stbuf, + struct iatt *preparent, + struct iatt *postparent, + dict_t *xdata); + +int +tier_create (call_frame_t *frame, xlator_t *this, + loc_t *loc, int32_t flags, mode_t mode, + mode_t umask, fd_t *fd, dict_t *params); int32_t tier_unlink (call_frame_t *frame, xlator_t *this, |