diff options
| author | Robert Yang <liezhi.yang@windriver.com> | 2013-02-04 18:03:35 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-22 05:22:41 -0800 |
| commit | c28505d8297d577924edff8c4232c6ffbf51cbe8 (patch) | |
| tree | a569f9fd4915de69cebc0a5b633b793b08cc2ee5 | |
| parent | 45f95b5f3381097672dd43077f267aa716a02b4c (diff) | |
| download | poky-c28505d8297d577924edff8c4232c6ffbf51cbe8.tar.gz | |
bitbake: monitordisk.py: disable the inode checking for some fs
There is an error when use disk monitor on btrfs:
WARNING: The free inode of rootfs is running low (0.000K left)
ERROR: Immediately abort since the disk space monitor action is "ABORT"!
This is beucase some fs formats' statvfs.f_files (inodes) is zero, thus
the statvfs.f_favail (free inodes) is zero, too, this a feature of the
fs, we disable the inode checking for such a fs.
[YOCTO #3609]
(Bitbake rev: 3eeba5c769b7dcb06f4868d6dbc15f05864e97fe)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/monitordisk.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/bitbake/lib/bb/monitordisk.py b/bitbake/lib/bb/monitordisk.py index 2bd488123e..1c1e614848 100644 --- a/bitbake/lib/bb/monitordisk.py +++ b/bitbake/lib/bb/monitordisk.py | |||
| @@ -128,7 +128,7 @@ def getDiskData(BBDirs, configuration): | |||
| 128 | if not os.path.exists(path): | 128 | if not os.path.exists(path): |
| 129 | bb.utils.mkdirhier(path) | 129 | bb.utils.mkdirhier(path) |
| 130 | mountedDev = getMountedDev(path) | 130 | mountedDev = getMountedDev(path) |
| 131 | devDict[mountedDev] = action, path, minSpace, minInode | 131 | devDict[mountedDev] = [action, path, minSpace, minInode] |
| 132 | 132 | ||
| 133 | return devDict | 133 | return devDict |
| 134 | 134 | ||
| @@ -231,6 +231,13 @@ class diskMonitor: | |||
| 231 | freeInode = st.f_favail | 231 | freeInode = st.f_favail |
| 232 | 232 | ||
| 233 | if self.devDict[dev][3] and freeInode < self.devDict[dev][3]: | 233 | if self.devDict[dev][3] and freeInode < self.devDict[dev][3]: |
| 234 | # Some fs formats' (e.g., btrfs) statvfs.f_files (inodes) is | ||
| 235 | # zero, this is a feature of the fs, we disable the inode | ||
| 236 | # checking for such a fs. | ||
| 237 | if st.f_files == 0: | ||
| 238 | logger.warn("Inode check for %s is unavaliable, remove it from disk monitor" % dev) | ||
| 239 | self.devDict[dev][3] = None | ||
| 240 | continue | ||
| 234 | # Always show warning, the self.checked would always be False if the action is WARN | 241 | # Always show warning, the self.checked would always be False if the action is WARN |
| 235 | if self.preFreeI[dev] == 0 or self.preFreeI[dev] - freeInode > self.inodeInterval and not self.checked[dev]: | 242 | if self.preFreeI[dev] == 0 or self.preFreeI[dev] - freeInode > self.inodeInterval and not self.checked[dev]: |
| 236 | logger.warn("The free inode of %s is running low (%.3fK left)" % (dev, freeInode / 1024.0)) | 243 | logger.warn("The free inode of %s is running low (%.3fK left)" % (dev, freeInode / 1024.0)) |
