Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdec29c5 authored by Alex Elder's avatar Alex Elder
Browse files

Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus

Conflicts:
	fs/xfs/linux-2.6/xfs_lrw.c
parents 0cb583fd 9ef96da6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5694,7 +5694,7 @@ F: include/xen/

XFS FILESYSTEM
P:	Silicon Graphics Inc
M:	Felix Blyakher <felixb@sgi.com>
M:	Alex Elder <aelder@sgi.com>
M:	xfs-masters@oss.sgi.com
L:	xfs@oss.sgi.com
W:	http://oss.sgi.com/projects/xfs
+0 −1
Original line number Diff line number Diff line
@@ -216,7 +216,6 @@ xfs_setfilesize(
	if (ip->i_d.di_size < isize) {
		ip->i_d.di_size = isize;
		ip->i_update_core = 1;
		ip->i_update_size = 1;
		xfs_mark_inode_dirty_sync(ip);
	}

+14 −5
Original line number Diff line number Diff line
@@ -172,12 +172,21 @@ xfs_file_release(
 */
STATIC int
xfs_file_fsync(
	struct file	*filp,
	struct file		*file,
	struct dentry		*dentry,
	int			datasync)
{
	xfs_iflags_clear(XFS_I(dentry->d_inode), XFS_ITRUNCATED);
	return -xfs_fsync(XFS_I(dentry->d_inode));
	struct inode		*inode = dentry->d_inode;
	struct xfs_inode	*ip = XFS_I(inode);
	int			error;

	/* capture size updates in I/O completion before writing the inode. */
	error = filemap_fdatawait(inode->i_mapping);
	if (error)
		return error;

	xfs_iflags_clear(ip, XFS_ITRUNCATED);
	return -xfs_fsync(ip);
}

STATIC int
+0 −1
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@
#include "xfs_error.h"
#include "xfs_itable.h"
#include "xfs_rw.h"
#include "xfs_acl.h"
#include "xfs_attr.h"
#include "xfs_buf_item.h"
#include "xfs_utils.h"
+5 −3
Original line number Diff line number Diff line
@@ -812,19 +812,21 @@ write_retry:

	/* Handle various SYNC-type writes */
	if ((file->f_flags & O_SYNC) || IS_SYNC(inode)) {
		loff_t end = pos + ret - 1;
		int error2;

		xfs_iunlock(xip, iolock);
		if (need_i_mutex)
			mutex_unlock(&inode->i_mutex);
		error2 = filemap_write_and_wait_range(mapping, pos,
						      pos + ret - 1);

		error2 = filemap_write_and_wait_range(mapping, pos, end);
		if (!error)
			error = error2;
		if (need_i_mutex)
			mutex_lock(&inode->i_mutex);
		xfs_ilock(xip, iolock);
		error2 = xfs_write_sync_logforce(mp, xip);

		error2 = xfs_fsync(xip);
		if (!error)
			error = error2;
	}
Loading