diff options
Diffstat (limited to 'logcat/logcat.cpp')
-rw-r--r-- | logcat/logcat.cpp | 14 |
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) { |