[ffs] ffs_valloc: free inode /home/19 had 128 blocks

Andreas Longwitz longwitz at incore.de
Tue Nov 26 20:51:56 UTC 2013


I run FreeBSD 8.4-STABLE #0 r256119 and I am confused about the message
coming from the code snippet

 if (DIP(ip, i_blocks) && (fs->fs_flags & FS_UNCLEAN) == 0) {  /* XXX */
         printf("free inode %s/%lu had %ld blocks\n",
             fs->fs_fsmnt, (u_long)ino, (long)DIP(ip, i_blocks));
         DIP_SET(ip, i_blocks, 0);
 }

in the function ffs_valloc(). I see these kernel messages often when a
snapshot is taken on a gjournaled ufs partition with

  mount -u -o noatime -o async -o snapshot /home/.snap/snaptest /home

The inode number (19) is always the inode number of the snapshot file.

I would like to know if the 128 blocks are lost forever. If "yes" there
is really a problem. If "no" then the message is not relevant for
gjournaled file systems and fs->fs_flags should be tested in this way:
    (fs->fs_flags & FS_UNCLEAN|FS_GJOURNAL) == 0

-- 
Andreas Longwitz



More information about the freebsd-fs mailing list