Commit 1777e888 authored by Martin Brandenburg's avatar Martin Brandenburg Committed by Greg Kroah-Hartman

orangefs: do not check possibly stale size on truncate

commit 53950ef5 upstream.

Let the server figure this out because our size might be out of date or
not present.

The bug was that

	xfs_io -f -t -c "pread -v 0 100" /mnt/foo
	echo "Test" > /mnt/foo
	xfs_io -f -t -c "pread -v 0 100" /mnt/foo

fails because the second truncate did not happen if nothing had
requested the size after the write in echo.  Thus i_size was zero (not
present) and the orangefs_setattr though i_size was zero and there was
nothing to do.
Signed-off-by: default avatarMartin Brandenburg <martin@omnibond.com>
Signed-off-by: default avatarMike Marshall <hubcap@omnibond.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 63907bb7
...@@ -223,8 +223,7 @@ int orangefs_setattr(struct dentry *dentry, struct iattr *iattr) ...@@ -223,8 +223,7 @@ int orangefs_setattr(struct dentry *dentry, struct iattr *iattr)
if (ret) if (ret)
goto out; goto out;
if ((iattr->ia_valid & ATTR_SIZE) && if (iattr->ia_valid & ATTR_SIZE) {
iattr->ia_size != i_size_read(inode)) {
ret = orangefs_setattr_size(inode, iattr); ret = orangefs_setattr_size(inode, iattr);
if (ret) if (ret)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment