diff options
Diffstat (limited to 'fs/sysv/file.c')
| -rw-r--r-- | fs/sysv/file.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/sysv/file.c b/fs/sysv/file.c index 0a65939508e..b00811c75b2 100644 --- a/fs/sysv/file.c +++ b/fs/sysv/file.c @@ -21,10 +21,10 @@   */  const struct file_operations sysv_file_operations = {  	.llseek		= generic_file_llseek, -	.read		= do_sync_read, -	.aio_read	= generic_file_aio_read, -	.write		= do_sync_write, -	.aio_write	= generic_file_aio_write, +	.read		= new_sync_read, +	.read_iter	= generic_file_read_iter, +	.write		= new_sync_write, +	.write_iter	= generic_file_write_iter,  	.mmap		= generic_file_mmap,  	.fsync		= generic_file_fsync,  	.splice_read	= generic_file_splice_read, @@ -41,9 +41,11 @@ static int sysv_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)  			return error; +		truncate_setsize(inode, attr->ia_size); +		sysv_truncate(inode);  	}  	setattr_copy(inode, attr); @@ -52,7 +54,6 @@ static int sysv_setattr(struct dentry *dentry, struct iattr *attr)  }  const struct inode_operations sysv_file_inode_operations = { -	.truncate	= sysv_truncate,  	.setattr	= sysv_setattr,  	.getattr	= sysv_getattr,  };  | 
