[Cluster-devel] [GFS2 PATCH] inode size inconsistency

Steven Whitehouse swhiteho at redhat.com
Wed Jun 27 16:02:58 UTC 2007


Hi,

Now in the -nmw git tree. Thanks,

Steve.

On Wed, 2007-06-27 at 11:00 -0400, Wendy Cheng wrote:
> This should have been part of the NFS patch #1 but somehow I missed it 
> when packaging the patches. It is not a critical issue as the others (I 
> hope). RHEL 5.1 31.el5 kernel runs fine without this change.
> 
> Our truncate code is chopped into two parts, one for vfs inode changes 
> (in vmtruncate()) and one of gfs inode (in gfs2_truncatei()). These two 
> operatons are, unfortunately, not atomic. So it could happens that 
> vmtruncate() succeeds (inode->i_size is changed) but gfs2_truncatei 
> fails (say kernel temporarily out of memory). This would leave gfs inode 
> i_di.di_size out of sync with vfs inode i_size. It will later confuse 
> gfs2_commit_write() if a write is issued. Last time I checked, it will 
> cause file corruption.
> 
> -- Wendy
> 




More information about the Cluster-devel mailing list