diff options
authorRobert Yang <>2013-02-04 18:03:35 +0800
committerRichard Purdie <>2013-02-22 05:22:41 -0800
commitc28505d8297d577924edff8c4232c6ffbf51cbe8 (patch)
parent45f95b5f3381097672dd43077f267aa716a02b4c (diff)
bitbake: 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 <> Signed-off-by: Richard Purdie <>
1 files changed, 8 insertions, 1 deletions
diff --git a/bitbake/lib/bb/ b/bitbake/lib/bb/
index 2bd488123e..1c1e614848 100644
--- a/bitbake/lib/bb/
+++ b/bitbake/lib/bb/
@@ -128,7 +128,7 @@ def getDiskData(BBDirs, configuration):
if not os.path.exists(path):
mountedDev = getMountedDev(path)
- devDict[mountedDev] = action, path, minSpace, minInode
+ devDict[mountedDev] = [action, path, minSpace, minInode]
return devDict
@@ -231,6 +231,13 @@ class diskMonitor:
freeInode = st.f_favail
if self.devDict[dev][3] and freeInode < self.devDict[dev][3]:
+ # Some fs formats' (e.g., btrfs) statvfs.f_files (inodes) is
+ # zero, this is a feature of the fs, we disable the inode
+ # checking for such a fs.
+ if st.f_files == 0:
+ logger.warn("Inode check for %s is unavaliable, remove it from disk monitor" % dev)
+ self.devDict[dev][3] = None
+ continue
# Always show warning, the self.checked would always be False if the action is WARN
if self.preFreeI[dev] == 0 or self.preFreeI[dev] - freeInode > self.inodeInterval and not self.checked[dev]:
logger.warn("The free inode of %s is running low (%.3fK left)" % (dev, freeInode / 1024.0))