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.