2012-10-06 08:25:14

by Marco Stornelli

[permalink] [raw]
Subject: [PATCH 07/22] adfs: drop vmtruncate

Removed vmtruncate.

Signed-off-by: Marco Stornelli <[email protected]>
---
fs/adfs/inode.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/adfs/inode.c b/fs/adfs/inode.c
index e9bad50..81de375 100644
--- a/fs/adfs/inode.c
+++ b/fs/adfs/inode.c
@@ -57,8 +57,9 @@ static int adfs_write_begin(struct file *file, struct address_space *mapping,
&ADFS_I(mapping->host)->mmu_private);
if (unlikely(ret)) {
loff_t isize = mapping->host->i_size;
- if (pos + len > isize)
- vmtruncate(mapping->host, isize);
+ if ((pos + len > isize) &&
+ inode_newsize_ok(mapping->host, isize) == 0)
+ truncate_setsize(mapping->host, isize);
}

return ret;
--
1.7.3.4


2012-10-13 16:20:21

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 07/22] adfs: drop vmtruncate

> @@ -57,8 +57,9 @@ static int adfs_write_begin(struct file *file, struct address_space *mapping,
> &ADFS_I(mapping->host)->mmu_private);
> if (unlikely(ret)) {
> loff_t isize = mapping->host->i_size;
> - if (pos + len > isize)
> - vmtruncate(mapping->host, isize);
> + if ((pos + len > isize) &&
> + inode_newsize_ok(mapping->host, isize) == 0)
> + truncate_setsize(mapping->host, isize);

No need for the inode_newsize_ok check here.