diff options
Diffstat (limited to 'fs/btrfs/ioctl.c')
| -rw-r--r-- | fs/btrfs/ioctl.c | 18 | 
1 files changed, 9 insertions, 9 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index e176375f374f..fa1b78cf25f6 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -37,7 +37,7 @@  #include <linux/bit_spinlock.h>  #include <linux/security.h>  #include <linux/xattr.h> -#include <linux/vmalloc.h> +#include <linux/mm.h>  #include <linux/slab.h>  #include <linux/blkdev.h>  #include <linux/uuid.h> @@ -689,7 +689,7 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,  	if (ret)  		goto dec_and_free; -	btrfs_wait_ordered_extents(root, -1, 0, (u64)-1); +	btrfs_wait_ordered_extents(root, U64_MAX, 0, (u64)-1);  	btrfs_init_block_rsv(&pending_snapshot->block_rsv,  			     BTRFS_BLOCK_RSV_TEMP); @@ -1127,6 +1127,7 @@ static int cluster_pages_for_defrag(struct inode *inode,  	struct btrfs_ordered_extent *ordered;  	struct extent_state *cached_state = NULL;  	struct extent_io_tree *tree; +	struct extent_changeset *data_reserved = NULL;  	gfp_t mask = btrfs_alloc_write_mask(inode->i_mapping);  	file_end = (isize - 1) >> PAGE_SHIFT; @@ -1135,7 +1136,7 @@ static int cluster_pages_for_defrag(struct inode *inode,  	page_cnt = min_t(u64, (u64)num_pages, (u64)file_end - start_index + 1); -	ret = btrfs_delalloc_reserve_space(inode, +	ret = btrfs_delalloc_reserve_space(inode, &data_reserved,  			start_index << PAGE_SHIFT,  			page_cnt << PAGE_SHIFT);  	if (ret) @@ -1226,7 +1227,7 @@ again:  		spin_lock(&BTRFS_I(inode)->lock);  		BTRFS_I(inode)->outstanding_extents++;  		spin_unlock(&BTRFS_I(inode)->lock); -		btrfs_delalloc_release_space(inode, +		btrfs_delalloc_release_space(inode, data_reserved,  				start_index << PAGE_SHIFT,  				(page_cnt - i_done) << PAGE_SHIFT);  	} @@ -1247,15 +1248,17 @@ again:  		unlock_page(pages[i]);  		put_page(pages[i]);  	} +	extent_changeset_free(data_reserved);  	return i_done;  out:  	for (i = 0; i < i_done; i++) {  		unlock_page(pages[i]);  		put_page(pages[i]);  	} -	btrfs_delalloc_release_space(inode, +	btrfs_delalloc_release_space(inode, data_reserved,  			start_index << PAGE_SHIFT,  			page_cnt << PAGE_SHIFT); +	extent_changeset_free(data_reserved);  	return ret;  } @@ -4588,7 +4591,7 @@ static long btrfs_ioctl_logical_to_ino(struct btrfs_fs_info *fs_info,  out:  	btrfs_free_path(path); -	vfree(inodes); +	kvfree(inodes);  	kfree(loi);  	return ret; @@ -4897,7 +4900,6 @@ static long btrfs_ioctl_qgroup_assign(struct file *file, void __user *arg)  		goto out;  	} -	/* FIXME: check if the IDs really exist */  	if (sa->assign) {  		ret = btrfs_add_qgroup_relation(trans, fs_info,  						sa->src, sa->dst); @@ -4956,7 +4958,6 @@ static long btrfs_ioctl_qgroup_create(struct file *file, void __user *arg)  		goto out;  	} -	/* FIXME: check if the IDs really exist */  	if (sa->create) {  		ret = btrfs_create_qgroup(trans, fs_info, sa->qgroupid);  	} else { @@ -5010,7 +5011,6 @@ static long btrfs_ioctl_qgroup_limit(struct file *file, void __user *arg)  		qgroupid = root->root_key.objectid;  	} -	/* FIXME: check if the IDs really exist */  	ret = btrfs_limit_qgroup(trans, fs_info, qgroupid, &sa->lim);  	err = btrfs_end_transaction(trans);  | 
