[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