diff options
Diffstat (limited to 'fs/hfs')
| -rw-r--r-- | fs/hfs/btree.h | 5 | ||||
| -rw-r--r-- | fs/hfs/inode.c | 18 | ||||
| -rw-r--r-- | fs/hfs/super.c | 1 | 
3 files changed, 10 insertions, 14 deletions
diff --git a/fs/hfs/btree.h b/fs/hfs/btree.h index 2a1d712f85d..f6bd266d70b 100644 --- a/fs/hfs/btree.h +++ b/fs/hfs/btree.h @@ -153,11 +153,6 @@ struct hfs_btree_header_rec {  	u32 reserved3[16];  } __packed; -#define HFS_NODE_INDEX	0x00	/* An internal (index) node */ -#define HFS_NODE_HEADER	0x01	/* The tree header node (node 0) */ -#define HFS_NODE_MAP		0x02	/* Holds part of the bitmap of used nodes */ -#define HFS_NODE_LEAF		0xFF	/* A leaf (ndNHeight==1) node */ -  #define BTREE_ATTR_BADCLOSE	0x00000001	/* b-tree not closed properly. not  						   used by hfsplus. */  #define HFS_TREE_BIGKEYS	0x00000002	/* key length is u16 instead of u8. diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index 380ab31b5e0..d0929bc8178 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c @@ -125,15 +125,15 @@ static int hfs_releasepage(struct page *page, gfp_t mask)  }  static ssize_t hfs_direct_IO(int rw, struct kiocb *iocb, -		const struct iovec *iov, loff_t offset, unsigned long nr_segs) +		struct iov_iter *iter, loff_t offset)  {  	struct file *file = iocb->ki_filp;  	struct address_space *mapping = file->f_mapping;  	struct inode *inode = file_inode(file)->i_mapping->host; +	size_t count = iov_iter_count(iter);  	ssize_t ret; -	ret = blockdev_direct_IO(rw, iocb, inode, iov, offset, nr_segs, -				 hfs_get_block); +	ret = blockdev_direct_IO(rw, iocb, inode, iter, offset, hfs_get_block);  	/*  	 * In case of error extending write may have instantiated a few @@ -141,7 +141,7 @@ static ssize_t hfs_direct_IO(int rw, struct kiocb *iocb,  	 */  	if (unlikely((rw & WRITE) && ret < 0)) {  		loff_t isize = i_size_read(inode); -		loff_t end = offset + iov_length(iov, nr_segs); +		loff_t end = offset + count;  		if (end > isize)  			hfs_write_failed(mapping, end); @@ -547,7 +547,7 @@ out:  void hfs_evict_inode(struct inode *inode)  { -	truncate_inode_pages(&inode->i_data, 0); +	truncate_inode_pages_final(&inode->i_data);  	clear_inode(inode);  	if (HFS_IS_RSRC(inode) && HFS_I(inode)->rsrc_inode) {  		HFS_I(HFS_I(inode)->rsrc_inode)->rsrc_inode = NULL; @@ -674,10 +674,10 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,  static const struct file_operations hfs_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,  	.splice_read	= generic_file_splice_read,  	.fsync		= hfs_file_fsync, diff --git a/fs/hfs/super.c b/fs/hfs/super.c index 2d2039e754c..eee7206c38d 100644 --- a/fs/hfs/super.c +++ b/fs/hfs/super.c @@ -112,6 +112,7 @@ static int hfs_statfs(struct dentry *dentry, struct kstatfs *buf)  static int hfs_remount(struct super_block *sb, int *flags, char *data)  { +	sync_filesystem(sb);  	*flags |= MS_NODIRATIME;  	if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))  		return 0;  | 
