VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   33 Branches   57 Tags
author: Christoph Hellwig <hch@lst.de> 2010-06-04 11:30:02 +0200 committer: Al Viro <viro@zeniv.linux.org.uk> 2010-08-09 16:47:37 -0400 commit: 1025774ce411f2bd4b059ad7b53f0003569b74fa parent: eef2380c187890816b73b1a4cb89a09203759469
Commit Summary:
remove inode_setattr
Diffstat:
1 file changed, 9 insertions, 1 deletion
diff --git a/fs/omfs/file.c b/fs/omfs/file.c
index 78c9f0c1a2f3..5542c284dc1c 100644
--- a/fs/omfs/file.c
+++ b/fs/omfs/file.c
@@ -349,7 +349,17 @@ static int omfs_setattr(struct dentry *dentry, struct iattr *attr)
 	error = inode_change_ok(inode, attr);
 	if (error)
 		return error;
-	return inode_setattr(inode, attr);
+
+	if ((attr->ia_valid & ATTR_SIZE) &&
+	    attr->ia_size != i_size_read(inode)) {
+		error = vmtruncate(inode, attr->ia_size);
+		if (error)
+			return error;
+	}
+
+	setattr_copy(inode, attr);
+	mark_inode_dirty(inode);
+	return 0;
 }
 
 const struct inode_operations omfs_file_inops = {