CVS log for xfs-linux/linux-2.6/xfs_file.c

[BACK] Up to [Development] / xfs-linux / linux-2.6

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: HEAD


Revision 1.165 / (download) - annotate - [select for diffs], Thu May 8 04:06:54 2008 UTC (9 years, 5 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.164: +11 -6 lines
Diff to previous 1.164 (unified)

Fix fsync() b0rkage.

xfs_fsync() fails to wait for data I/O completion before checking if
the inode is dirty or clean to decide whether to log the inode or not.
This misses inode size updates when the data flushed by the fsync()
is extending the file.

Hence, like fdatasync(), we need to wait for I/o completion first,
then check the inode for cleanliness. Doing so makes the behaviour of
xfs_fsync() identical for fsync and fdatasync and we *always* use
synchronous semantics if the inode is dirty. Therefore also kill the
differences and remove the unused flags from the xfs_fsync function
and callers.
Merge of xfs-linux-melb:xfs-kern:31033a by kenmcd.

  fsync and fdatasync are implemented identically now.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>