hpfs: drop vmtruncate
Subsystems (2)
PATCH 11/21 hpfs: drop vmtruncate
Removed vmtruncate
Signed-off-by Marco Stornelli <[email protected]>
--- fs/hpfs/file.c | 18 ++++++++++++------ fs/hpfs/inode.c | 5 ++++- 2 files changed, 16 insertions(+), 7 deletions(-)
fs/hpfs/file.c +12 -6
@@ -105,6 +105,16 @@ static int hpfs_readpage(struct file *file, struct page *page)return block_read_full_page (page,hpfs_get_block); } +static void hpfs_write_failed (struct address_space *mapping,loff_t to) +{ +struct inode *inode = mapping->host; + +if (to > inode->i_size) { +truncate_pagecache (inode, to, inode->i_size); +hpfs_truncate (inode); + } +} +static int hpfs_write_begin (struct file *file,struct address_space *mapping,loff_t pos,unsigned len,unsigned flags,struct page **pagep,void **fsdata)
@@ -115,11 +125,8 @@ static int hpfs_write_begin(struct file *file, struct address_space *mapping, ret =cont_write_begin (file, mapping, pos, len, flags, pagep, fsdata, hpfs_get_block, &hpfs_i (mapping->host)->mmu_private); -if (unlikely (ret)) { -loff_t isize = mapping->host->i_size; -if (pos + len > isize) -vmtruncate (mapping->host, isize); - } +if (unlikely (ret)) +hpfs_write_failed (mapping, pos + len);return ret; }
@@ -166,6 +173,5 @@ const struct file_operations hpfs_file_ops =const struct inode_operations hpfs_file_iops = { - .truncate = hpfs_truncate, .setattr = hpfs_setattr, };
fs/hpfs/inode.c +4 -1
@@ -277,9 +277,12 @@ int hpfs_setattr(struct dentry *dentry, struct iattr *attr)if ((attr->ia_valid &ATTR_SIZE ) && attr->ia_size !=i_size_read (inode)) { - error =vmtruncate (inode, attr->ia_size); + error =inode_newsize_ok (inode, attr->ia_size);if (error) goto out_unlock; + +truncate_setsize (inode, attr->ia_size); +hpfs_truncate (inode); }setattr_copy (inode, attr);
Signature · 1 line
1.7.3.4