diff options
author | Florian Mayer <fmayer@google.com> | 2018-04-10 13:17:00 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-04-10 13:17:00 -0700 |
commit | 8074073c818f0a4389a60081da7739e4cb909a4b (patch) | |
tree | b9993f39575ed649cf60963ac425d9e617cf4fda | |
parent | d13666e760913c9071d5dc19aa2e5d4f22ce9529 (diff) | |
parent | a75d8e2ca825776939b23a475e3b64e9279d99e0 (diff) | |
download | perfetto-8074073c818f0a4389a60081da7739e4cb909a4b.tar.gz |
Remove inodes we find from scheduled scan as well. am: 5e38ea28bc am: 00f311f168
am: a75d8e2ca8
Change-Id: I705dcd98862aaf55fc1a344880a68439de5136d7
-rw-r--r-- | src/traced/probes/filesystem/inode_file_data_source.cc | 11 | ||||
-rw-r--r-- | src/traced/probes/filesystem/inode_file_data_source.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/traced/probes/filesystem/inode_file_data_source.cc b/src/traced/probes/filesystem/inode_file_data_source.cc index 4bcc0b8db..a66c2a9c9 100644 --- a/src/traced/probes/filesystem/inode_file_data_source.cc +++ b/src/traced/probes/filesystem/inode_file_data_source.cc @@ -270,6 +270,15 @@ InodeFileMap* InodeFileDataSource::AddToCurrentTracePacket( return current_file_map_; } +void InodeFileDataSource::RemoveFromNextMissingInodes( + BlockDeviceID block_device_id, + Inode inode_number) { + auto it = next_missing_inodes_.find(block_device_id); + if (it == next_missing_inodes_.end()) + return; + it->second.erase(inode_number); +} + bool InodeFileDataSource::OnInodeFound( BlockDeviceID block_device_id, Inode inode_number, @@ -286,6 +295,8 @@ bool InodeFileDataSource::OnInodeFound( if (it->second.empty()) missing_inodes_.erase(it); + RemoveFromNextMissingInodes(block_device_id, inode_number); + std::pair<BlockDeviceID, Inode> key{block_device_id, inode_number}; auto cur_val = cache_->Get(key); if (cur_val) { diff --git a/src/traced/probes/filesystem/inode_file_data_source.h b/src/traced/probes/filesystem/inode_file_data_source.h index a912d0623..bede1240d 100644 --- a/src/traced/probes/filesystem/inode_file_data_source.h +++ b/src/traced/probes/filesystem/inode_file_data_source.h @@ -99,6 +99,8 @@ class InodeFileDataSource : public FileScanner::Delegate { void AddRootsForBlockDevice(BlockDeviceID block_device_id, std::vector<std::string>* roots); + void RemoveFromNextMissingInodes(BlockDeviceID block_device_id, + Inode inode_number); uint32_t GetScanIntervalMs() const; uint32_t GetScanDelayMs() const; |