summaryrefslogtreecommitdiff
path: root/logcat/logcat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logcat/logcat.cpp')
-rw-r--r--logcat/logcat.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/logcat/logcat.cpp b/logcat/logcat.cpp
index 76a970f2a..b8c143d98 100644
--- a/logcat/logcat.cpp
+++ b/logcat/logcat.cpp
@@ -122,6 +122,18 @@ static int openLogFile(const char* pathname, size_t sizeKB) {
return fd;
}
+static void closeLogFile(const char* pathname) {
+ int fd = open(pathname, O_WRONLY | O_CLOEXEC);
+ if (fd == -1) {
+ return;
+ }
+
+ // no need to check errors
+ __u32 set = 0;
+ ioctl(fd, F2FS_IOC_SET_PIN_FILE, &set);
+ close(fd);
+}
+
void Logcat::RotateLogs() {
// Can't rotate logs if we're not outputting to a file
if (!output_file_name_) return;
@@ -152,6 +164,8 @@ void Logcat::RotateLogs() {
break;
}
+ closeLogFile(file0.c_str());
+
int err = rename(file0.c_str(), file1.c_str());
if (err < 0 && errno != ENOENT) {