In function do_warn_interval 'fd' opened was not closed
in case write() returned error. This leak is fixed by
calling close() before returning
This patch also checks the return from futimens() and
logs an error in case it fails
CoverityID: 415056 ("Resource leak")
Fixes:
a454c9efd8 (LU-17137 utils: Deprecate l_getidentity 'files' alias)
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Ice0269d524e237a4fc421b2a91d8f26b5e41b13f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54330
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
write_warning = true;
} else {
show_warning = (now->tv_sec - sbuf.st_mtim.tv_sec) > ONE_DAY;
write_warning = true;
} else {
show_warning = (now->tv_sec - sbuf.st_mtim.tv_sec) > ONE_DAY;
+ write_warning = sbuf.st_size == 0; /* file still empty? */
}
if (write_warning || show_warning) {
}
if (write_warning || show_warning) {
/* unlikely, but rate-limiting may be broken */
if (written <= 0)
/* unlikely, but rate-limiting may be broken */
if (written <= 0)
}
errlog("WARNING: %s", msg);
/* rate limiting is working */
if (show_warning)
}
errlog("WARNING: %s", msg);
/* rate limiting is working */
if (show_warning)
+ if (futimens(fd, times) < 0)
+ errlog("Change Timestamp failed: %s\n",
+ strerror(errno));
+out_close:
+ close(fd);