Removed vmtruncate.
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
---
fs/ocfs2/file.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 5a4ee77..f0737d0 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1229,11 +1229,12 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr
*attr)
*/
if ((attr->ia_valid & ATTR_SIZE) &&
attr->ia_size != i_size_read(inode)) {
- status = vmtruncate(inode, attr->ia_size);
+ status = inode_newsize_ok(inode, attr->ia_size);
if (status) {
mlog_errno(status);
goto bail_commit;
}
+ truncate_setsize(inode, attr->ia_size);
}
setattr_copy(inode, attr);
--
1.7.3.4
Christoph Hellwig
2012-Oct-13 16:19 UTC
[Ocfs2-devel] [PATCH 06/22] ocfs2: drop vmtruncate
> if ((attr->ia_valid & ATTR_SIZE) && > attr->ia_size != i_size_read(inode)) { > - status = vmtruncate(inode, attr->ia_size); > + status = inode_newsize_ok(inode, attr->ia_size); > if (status) { > mlog_errno(status); > goto bail_commit; > } > + truncate_setsize(inode, attr->ia_size);ocfs2 already calls inode_newsize_ok earlier during ocfs2_setattr, and there's an XXX comment just above the vmtruncate call about how ocfs2 hacks around this. I suspect you just want a plain truncate_setsize here and remove the comment above it, but I'd like to have the ocfs2 folks confirm that.
Il 13/10/2012 18:19, Christoph Hellwig ha scritto:>> if ((attr->ia_valid & ATTR_SIZE) && >> attr->ia_size != i_size_read(inode)) { >> - status = vmtruncate(inode, attr->ia_size); >> + status = inode_newsize_ok(inode, attr->ia_size); >> if (status) { >> mlog_errno(status); >> goto bail_commit; >> } >> + truncate_setsize(inode, attr->ia_size); > > ocfs2 already calls inode_newsize_ok earlier during ocfs2_setattr, > and there''s an XXX comment just above the vmtruncate call about > how ocfs2 hacks around this. I suspect you just want a plain > truncate_setsize here and remove the comment above it, but I''d > like to have the ocfs2 folks confirm that. > >Yep, I quite agree. truncate_setsize can be moved up into to the previous "if (size_change && attr->ia_size != i_size_read(inode))" where the truncate code does its work.