http://kb.odin.com/en/127035

Signed-off-by: Dmitry Monakhov <[email protected]>
---
 misc/e4defrag2.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/misc/e4defrag2.c b/misc/e4defrag2.c
index 43f38c5..7be14a8 100644
--- a/misc/e4defrag2.c
+++ b/misc/e4defrag2.c
@@ -1964,6 +1964,7 @@ static int do_iaf_defrag_one(struct defrag_context *dfx, 
int dirfd, const char *
                fec->fec_map[fec->fec_extents -1].len;
 
        assert(fest->frag >= 2);
+       ret  = 0;
 
        /* Need to reopen file for RW */
        fd = openat(dirfd, name, O_RDWR);
@@ -1977,13 +1978,13 @@ static int do_iaf_defrag_one(struct defrag_context 
*dfx, int dirfd, const char *
                if (debug_flag & DBG_RT)
                        fprintf(stderr, "%s: stat failed err:%d\n", __func__,
                                errno);
-               return 0;
+               goto out_fd;
        }
 
        if (st2.st_ino != stat->st_ino) {
                if (debug_flag & DBG_RT)
                        fprintf(stderr, "%s Race while reopen\n", __func__);
-               return 0;
+               goto out_fd;
        }
 
        donor.fd = -1;
@@ -2013,7 +2014,7 @@ static int do_iaf_defrag_one(struct defrag_context *dfx, 
int dirfd, const char *
                if (debug_flag & DBG_SCAN)
                        fprintf(stderr, "%s group:%u Can not allocate donor"
                                " file\n", __func__,  ino_grp);
-               return 0;
+               goto out_fd;
        }
 
        if (debug_flag & DBG_SCAN) {
@@ -2049,6 +2050,7 @@ static int do_iaf_defrag_one(struct defrag_context *dfx, 
int dirfd, const char *
                               fest->frag, donor.fest.frag);
        }
        close_donor(&donor);
+out_fd:
        close(fd);
 
        return ret;
-- 
1.7.1

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to