* [PATCH 19/22] ntfs: drop vmtruncate
@ 2012-10-06 8:35 Marco Stornelli
0 siblings, 0 replies; only message in thread
From: Marco Stornelli @ 2012-10-06 8:35 UTC (permalink / raw)
To: Al Viro; +Cc: Anton Altaparmakov, linux-ntfs-dev, linux-kernel, Linux FS Devel
Removed vmtruncate.
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
Reviewed-by: Anton Altaparmakov <anton@tuxera.com>
---
fs/ntfs/file.c | 8 +++++---
fs/ntfs/inode.c | 11 +++++++++--
fs/ntfs/inode.h | 4 ++++
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index 1ecf464..5332e90 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -2022,8 +2022,11 @@ static ssize_t ntfs_file_buffered_write(struct kiocb *iocb,
* allocated space, which is not a disaster.
*/
i_size = i_size_read(vi);
- if (pos + bytes > i_size)
- vmtruncate(vi, i_size);
+ if ((pos + bytes > i_size) &&
+ inode_newsize_ok(vi, i_size) == 0) {
+ truncate_setsize(vi, i_size);
+ ntfs_truncate_vfs(vi);
+ }
break;
}
}
@@ -2227,7 +2230,6 @@ const struct file_operations ntfs_file_ops = {
const struct inode_operations ntfs_file_inode_ops = {
#ifdef NTFS_RW
- .truncate = ntfs_truncate_vfs,
.setattr = ntfs_setattr,
#endif /* NTFS_RW */
};
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c
index 1d27331..40e8137 100644
--- a/fs/ntfs/inode.c
+++ b/fs/ntfs/inode.c
@@ -2866,9 +2866,11 @@ conv_err_out:
*
* See ntfs_truncate() description above for details.
*/
+#ifdef NTFS_RW
void ntfs_truncate_vfs(struct inode *vi) {
ntfs_truncate(vi);
}
+#endif
/**
* ntfs_setattr - called from notify_change() when an attribute is being changed
@@ -2914,8 +2916,13 @@ int ntfs_setattr(struct dentry *dentry, struct iattr *attr)
NInoCompressed(ni) ?
"compressed" : "encrypted");
err = -EOPNOTSUPP;
- } else
- err = vmtruncate(vi, attr->ia_size);
+ } else {
+ err = inode_newsize_ok(vi, attr->ia_size);
+ if (!err) {
+ truncate_setsize(vi, attr->ia_size);
+ ntfs_truncate_vfs(vi);
+ }
+ }
if (err || ia_valid == ATTR_SIZE)
goto out;
} else {
diff --git a/fs/ntfs/inode.h b/fs/ntfs/inode.h
index db29695..76b6cfb 100644
--- a/fs/ntfs/inode.h
+++ b/fs/ntfs/inode.h
@@ -316,6 +316,10 @@ static inline void ntfs_commit_inode(struct inode *vi)
return;
}
+#else
+
+static inline void ntfs_truncate_vfs(struct inode *vi) {}
+
#endif /* NTFS_RW */
#endif /* _LINUX_NTFS_INODE_H */
--
1.7.3.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-10-06 8:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-06 8:35 [PATCH 19/22] ntfs: drop vmtruncate Marco Stornelli
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.