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 /bitbake/lib | |
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>
Diffstat (limited to 'bitbake/lib')
-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)) |