On Sat, Jun 10, 2017 at 06:03:24AM -0700, Richard Narron wrote: > 2) After creating a new filesystem on FreeBSD, then on Linux copying a > larger than 2GB file and creating a directory, the fsck back on FreeBSD > looks ok. > > But after going back to Linux and removing the large file and removing the > directory, the fsck on FreeBSD looks not so good: What happens is ufs_evict_inode() buggering off without syncing the inode in case of final removal. Incremental on top of that branch is diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c index 34f11cf0900a..da553ffec85b 100644 --- a/fs/ufs/inode.c +++ b/fs/ufs/inode.c @@ -848,6 +848,7 @@ void ufs_evict_inode(struct inode * inode) (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))) ufs_truncate_blocks(inode); + ufs_update_inode(inode, inode_needs_sync(inode)); } invalidate_inode_buffers(inode); Committed and pushed out...