summaryrefslogtreecommitdiffstats
path: root/xlators/features/changelog/lib
diff options
context:
space:
mode:
authorAjeet Jha <ajha@redhat.com>2014-06-02 14:49:07 +0530
committerVenky Shankar <vshankar@redhat.com>2014-06-10 06:37:57 -0700
commit94260c93a144b52964a27ddc9eaef869a3e8f354 (patch)
tree116590542f6b7bcdf42d04e8df89b68dbf12fc19 /xlators/features/changelog/lib
parentb12b15a186714ec4d5639b778f15e075c833ce55 (diff)
features/changelog: skipping empty changelogs in history
Empty changelgs are unlinked and htime-update is bypassed while publishing partially written changelog. Change-Id: I1533ad431e4fbf592d2f38837fce782932d01e9c BUG: 1105466 Signed-off-by: Ajeet Jha <ajha@redhat.com> Reviewed-on: http://review.gluster.org/7949 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Venky Shankar <vshankar@redhat.com> Tested-by: Venky Shankar <vshankar@redhat.com>
Diffstat (limited to 'xlators/features/changelog/lib')
-rw-r--r--xlators/features/changelog/lib/src/gf-changelog-process.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/xlators/features/changelog/lib/src/gf-changelog-process.c b/xlators/features/changelog/lib/src/gf-changelog-process.c
index 3b8d2683672..83f8928de6d 100644
--- a/xlators/features/changelog/lib/src/gf-changelog-process.c
+++ b/xlators/features/changelog/lib/src/gf-changelog-process.c
@@ -471,16 +471,10 @@ gf_changelog_publish (xlator_t *this, gf_changelog_t *gfc, char *from_path)
gfc->gfc_current_dir, basename (from_path));
/* handle zerob file that wont exist in current */
- ret = stat (from_path, &stbuf);
- if (ret)
- goto out;
-
- if (stbuf.st_size == 0) {
- ret = unlink (from_path);
- if (ret)
- gf_log (this->name, GF_LOG_ERROR,
- "could not unlink %s (reason %s)",
- from_path, strerror (errno));
+ ret = stat (to_path, &stbuf);
+ if (ret){
+ if (errno == ENOENT)
+ ret = 0;
goto out;
}
@@ -546,7 +540,7 @@ gf_changelog_consume (xlator_t *this,
close (fd2);
if (!ret) {
- /* move it to processing on a successfull
+ /* move it to processing on a successful
decode */
if (no_publish == _gf_true)
goto close_fd;
@@ -560,11 +554,7 @@ gf_changelog_consume (xlator_t *this,
/* remove it from .current if it's an empty file */
if (zerob) {
- if (no_publish == _gf_true) {
- ret = 0;
- goto close_fd;
- }
-
+ /* zerob changelogs must be unlinked */
ret = unlink (to_path);
if (ret)
gf_log (this->name, GF_LOG_ERROR,