From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 10 Jun 2017 17:07:38 +0100 From: Al Viro To: Richard Narron Cc: Linus Torvalds , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [git pull] first batch of ufs fixes Message-ID: <20170610160738.GE6365@ZenIV.linux.org.uk> References: <20170609213830.GB6365@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: 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...