aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ioctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/ioctl.c')
-rw-r--r--fs/btrfs/ioctl.c86
1 files changed, 43 insertions, 43 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 053e677839fe..5a23806ae418 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -898,7 +898,7 @@ static int check_defrag_in_cache(struct inode *inode, u64 offset, u32 thresh)
898 u64 end; 898 u64 end;
899 899
900 read_lock(&em_tree->lock); 900 read_lock(&em_tree->lock);
901 em = lookup_extent_mapping(em_tree, offset, PAGE_CACHE_SIZE); 901 em = lookup_extent_mapping(em_tree, offset, PAGE_SIZE);
902 read_unlock(&em_tree->lock); 902 read_unlock(&em_tree->lock);
903 903
904 if (em) { 904 if (em) {
@@ -988,7 +988,7 @@ static struct extent_map *defrag_lookup_extent(struct inode *inode, u64 start)
988 struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree; 988 struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree;
989 struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree; 989 struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree;
990 struct extent_map *em; 990 struct extent_map *em;
991 u64 len = PAGE_CACHE_SIZE; 991 u64 len = PAGE_SIZE;
992 992
993 /* 993 /*
994 * hopefully we have this extent in the tree already, try without 994 * hopefully we have this extent in the tree already, try without
@@ -1124,15 +1124,15 @@ static int cluster_pages_for_defrag(struct inode *inode,
1124 struct extent_io_tree *tree; 1124 struct extent_io_tree *tree;
1125 gfp_t mask = btrfs_alloc_write_mask(inode->i_mapping); 1125 gfp_t mask = btrfs_alloc_write_mask(inode->i_mapping);
1126 1126
1127 file_end = (isize - 1) >> PAGE_CACHE_SHIFT; 1127 file_end = (isize - 1) >> PAGE_SHIFT;
1128 if (!isize || start_index > file_end) 1128 if (!isize || start_index > file_end)
1129 return 0; 1129 return 0;
1130 1130
1131 page_cnt = min_t(u64, (u64)num_pages, (u64)file_end - start_index + 1); 1131 page_cnt = min_t(u64, (u64)num_pages, (u64)file_end - start_index + 1);
1132 1132
1133 ret = btrfs_delalloc_reserve_space(inode, 1133 ret = btrfs_delalloc_reserve_space(inode,
1134 start_index << PAGE_CACHE_SHIFT, 1134 start_index << PAGE_SHIFT,
1135 page_cnt << PAGE_CACHE_SHIFT); 1135 page_cnt << PAGE_SHIFT);
1136 if (ret) 1136 if (ret)
1137 return ret; 1137 return ret;
1138 i_done = 0; 1138 i_done = 0;
@@ -1148,7 +1148,7 @@ again:
1148 break; 1148 break;
1149 1149
1150 page_start = page_offset(page); 1150 page_start = page_offset(page);
1151 page_end = page_start + PAGE_CACHE_SIZE - 1; 1151 page_end = page_start + PAGE_SIZE - 1;
1152 while (1) { 1152 while (1) {
1153 lock_extent_bits(tree, page_start, page_end, 1153 lock_extent_bits(tree, page_start, page_end,
1154 &cached_state); 1154 &cached_state);
@@ -1169,7 +1169,7 @@ again:
1169 */ 1169 */
1170 if (page->mapping != inode->i_mapping) { 1170 if (page->mapping != inode->i_mapping) {
1171 unlock_page(page); 1171 unlock_page(page);
1172 page_cache_release(page); 1172 put_page(page);
1173 goto again; 1173 goto again;
1174 } 1174 }
1175 } 1175 }
@@ -1179,7 +1179,7 @@ again:
1179 lock_page(page); 1179 lock_page(page);
1180 if (!PageUptodate(page)) { 1180 if (!PageUptodate(page)) {
1181 unlock_page(page); 1181 unlock_page(page);
1182 page_cache_release(page); 1182 put_page(page);
1183 ret = -EIO; 1183 ret = -EIO;
1184 break; 1184 break;
1185 } 1185 }
@@ -1187,7 +1187,7 @@ again:
1187 1187
1188 if (page->mapping != inode->i_mapping) { 1188 if (page->mapping != inode->i_mapping) {
1189 unlock_page(page); 1189 unlock_page(page);
1190 page_cache_release(page); 1190 put_page(page);
1191 goto again; 1191 goto again;
1192 } 1192 }
1193 1193
@@ -1208,7 +1208,7 @@ again:
1208 wait_on_page_writeback(pages[i]); 1208 wait_on_page_writeback(pages[i]);
1209 1209
1210 page_start = page_offset(pages[0]); 1210 page_start = page_offset(pages[0]);
1211 page_end = page_offset(pages[i_done - 1]) + PAGE_CACHE_SIZE; 1211 page_end = page_offset(pages[i_done - 1]) + PAGE_SIZE;
1212 1212
1213 lock_extent_bits(&BTRFS_I(inode)->io_tree, 1213 lock_extent_bits(&BTRFS_I(inode)->io_tree,
1214 page_start, page_end - 1, &cached_state); 1214 page_start, page_end - 1, &cached_state);
@@ -1222,8 +1222,8 @@ again:
1222 BTRFS_I(inode)->outstanding_extents++; 1222 BTRFS_I(inode)->outstanding_extents++;
1223 spin_unlock(&BTRFS_I(inode)->lock); 1223 spin_unlock(&BTRFS_I(inode)->lock);
1224 btrfs_delalloc_release_space(inode, 1224 btrfs_delalloc_release_space(inode,
1225 start_index << PAGE_CACHE_SHIFT, 1225 start_index << PAGE_SHIFT,
1226 (page_cnt - i_done) << PAGE_CACHE_SHIFT); 1226 (page_cnt - i_done) << PAGE_SHIFT);
1227 } 1227 }
1228 1228
1229 1229
@@ -1240,17 +1240,17 @@ again:
1240 set_page_extent_mapped(pages[i]); 1240 set_page_extent_mapped(pages[i]);
1241 set_page_dirty(pages[i]); 1241 set_page_dirty(pages[i]);
1242 unlock_page(pages[i]); 1242 unlock_page(pages[i]);
1243 page_cache_release(pages[i]); 1243 put_page(pages[i]);
1244 } 1244 }
1245 return i_done; 1245 return i_done;
1246out: 1246out:
1247 for (i = 0; i < i_done; i++) { 1247 for (i = 0; i < i_done; i++) {
1248 unlock_page(pages[i]); 1248 unlock_page(pages[i]);
1249 page_cache_release(pages[i]); 1249 put_page(pages[i]);
1250 } 1250 }
1251 btrfs_delalloc_release_space(inode, 1251 btrfs_delalloc_release_space(inode,
1252 start_index << PAGE_CACHE_SHIFT, 1252 start_index << PAGE_SHIFT,
1253 page_cnt << PAGE_CACHE_SHIFT); 1253 page_cnt << PAGE_SHIFT);
1254 return ret; 1254 return ret;
1255 1255
1256} 1256}
@@ -1273,7 +1273,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1273 int defrag_count = 0; 1273 int defrag_count = 0;
1274 int compress_type = BTRFS_COMPRESS_ZLIB; 1274 int compress_type = BTRFS_COMPRESS_ZLIB;
1275 u32 extent_thresh = range->extent_thresh; 1275 u32 extent_thresh = range->extent_thresh;
1276 unsigned long max_cluster = SZ_256K >> PAGE_CACHE_SHIFT; 1276 unsigned long max_cluster = SZ_256K >> PAGE_SHIFT;
1277 unsigned long cluster = max_cluster; 1277 unsigned long cluster = max_cluster;
1278 u64 new_align = ~((u64)SZ_128K - 1); 1278 u64 new_align = ~((u64)SZ_128K - 1);
1279 struct page **pages = NULL; 1279 struct page **pages = NULL;
@@ -1317,9 +1317,9 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1317 /* find the last page to defrag */ 1317 /* find the last page to defrag */
1318 if (range->start + range->len > range->start) { 1318 if (range->start + range->len > range->start) {
1319 last_index = min_t(u64, isize - 1, 1319 last_index = min_t(u64, isize - 1,
1320 range->start + range->len - 1) >> PAGE_CACHE_SHIFT; 1320 range->start + range->len - 1) >> PAGE_SHIFT;
1321 } else { 1321 } else {
1322 last_index = (isize - 1) >> PAGE_CACHE_SHIFT; 1322 last_index = (isize - 1) >> PAGE_SHIFT;
1323 } 1323 }
1324 1324
1325 if (newer_than) { 1325 if (newer_than) {
@@ -1331,11 +1331,11 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1331 * we always align our defrag to help keep 1331 * we always align our defrag to help keep
1332 * the extents in the file evenly spaced 1332 * the extents in the file evenly spaced
1333 */ 1333 */
1334 i = (newer_off & new_align) >> PAGE_CACHE_SHIFT; 1334 i = (newer_off & new_align) >> PAGE_SHIFT;
1335 } else 1335 } else
1336 goto out_ra; 1336 goto out_ra;
1337 } else { 1337 } else {
1338 i = range->start >> PAGE_CACHE_SHIFT; 1338 i = range->start >> PAGE_SHIFT;
1339 } 1339 }
1340 if (!max_to_defrag) 1340 if (!max_to_defrag)
1341 max_to_defrag = last_index - i + 1; 1341 max_to_defrag = last_index - i + 1;
@@ -1348,7 +1348,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1348 inode->i_mapping->writeback_index = i; 1348 inode->i_mapping->writeback_index = i;
1349 1349
1350 while (i <= last_index && defrag_count < max_to_defrag && 1350 while (i <= last_index && defrag_count < max_to_defrag &&
1351 (i < DIV_ROUND_UP(i_size_read(inode), PAGE_CACHE_SIZE))) { 1351 (i < DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE))) {
1352 /* 1352 /*
1353 * make sure we stop running if someone unmounts 1353 * make sure we stop running if someone unmounts
1354 * the FS 1354 * the FS
@@ -1362,7 +1362,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1362 break; 1362 break;
1363 } 1363 }
1364 1364
1365 if (!should_defrag_range(inode, (u64)i << PAGE_CACHE_SHIFT, 1365 if (!should_defrag_range(inode, (u64)i << PAGE_SHIFT,
1366 extent_thresh, &last_len, &skip, 1366 extent_thresh, &last_len, &skip,
1367 &defrag_end, range->flags & 1367 &defrag_end, range->flags &
1368 BTRFS_DEFRAG_RANGE_COMPRESS)) { 1368 BTRFS_DEFRAG_RANGE_COMPRESS)) {
@@ -1371,14 +1371,14 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1371 * the should_defrag function tells us how much to skip 1371 * the should_defrag function tells us how much to skip
1372 * bump our counter by the suggested amount 1372 * bump our counter by the suggested amount
1373 */ 1373 */
1374 next = DIV_ROUND_UP(skip, PAGE_CACHE_SIZE); 1374 next = DIV_ROUND_UP(skip, PAGE_SIZE);
1375 i = max(i + 1, next); 1375 i = max(i + 1, next);
1376 continue; 1376 continue;
1377 } 1377 }
1378 1378
1379 if (!newer_than) { 1379 if (!newer_than) {
1380 cluster = (PAGE_CACHE_ALIGN(defrag_end) >> 1380 cluster = (PAGE_ALIGN(defrag_end) >>
1381 PAGE_CACHE_SHIFT) - i; 1381 PAGE_SHIFT) - i;
1382 cluster = min(cluster, max_cluster); 1382 cluster = min(cluster, max_cluster);
1383 } else { 1383 } else {
1384 cluster = max_cluster; 1384 cluster = max_cluster;
@@ -1412,20 +1412,20 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
1412 i += ret; 1412 i += ret;
1413 1413
1414 newer_off = max(newer_off + 1, 1414 newer_off = max(newer_off + 1,
1415 (u64)i << PAGE_CACHE_SHIFT); 1415 (u64)i << PAGE_SHIFT);
1416 1416
1417 ret = find_new_extents(root, inode, newer_than, 1417 ret = find_new_extents(root, inode, newer_than,
1418 &newer_off, SZ_64K); 1418 &newer_off, SZ_64K);
1419 if (!ret) { 1419 if (!ret) {
1420 range->start = newer_off; 1420 range->start = newer_off;
1421 i = (newer_off & new_align) >> PAGE_CACHE_SHIFT; 1421 i = (newer_off & new_align) >> PAGE_SHIFT;
1422 } else { 1422 } else {
1423 break; 1423 break;
1424 } 1424 }
1425 } else { 1425 } else {
1426 if (ret > 0) { 1426 if (ret > 0) {
1427 i += ret; 1427 i += ret;
1428 last_len += ret << PAGE_CACHE_SHIFT; 1428 last_len += ret << PAGE_SHIFT;
1429 } else { 1429 } else {
1430 i++; 1430 i++;
1431 last_len = 0; 1431 last_len = 0;
@@ -1654,7 +1654,7 @@ static noinline int btrfs_ioctl_snap_create_transid(struct file *file,
1654 1654
1655 src_inode = file_inode(src.file); 1655 src_inode = file_inode(src.file);
1656 if (src_inode->i_sb != file_inode(file)->i_sb) { 1656 if (src_inode->i_sb != file_inode(file)->i_sb) {
1657 btrfs_info(BTRFS_I(src_inode)->root->fs_info, 1657 btrfs_info(BTRFS_I(file_inode(file))->root->fs_info,
1658 "Snapshot src from another FS"); 1658 "Snapshot src from another FS");
1659 ret = -EXDEV; 1659 ret = -EXDEV;
1660 } else if (!inode_owner_or_capable(src_inode)) { 1660 } else if (!inode_owner_or_capable(src_inode)) {
@@ -1722,7 +1722,7 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
1722 if (vol_args->flags & BTRFS_SUBVOL_RDONLY) 1722 if (vol_args->flags & BTRFS_SUBVOL_RDONLY)
1723 readonly = true; 1723 readonly = true;
1724 if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) { 1724 if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
1725 if (vol_args->size > PAGE_CACHE_SIZE) { 1725 if (vol_args->size > PAGE_SIZE) {
1726 ret = -EINVAL; 1726 ret = -EINVAL;
1727 goto free_args; 1727 goto free_args;
1728 } 1728 }
@@ -2806,12 +2806,12 @@ static struct page *extent_same_get_page(struct inode *inode, pgoff_t index)
2806 lock_page(page); 2806 lock_page(page);
2807 if (!PageUptodate(page)) { 2807 if (!PageUptodate(page)) {
2808 unlock_page(page); 2808 unlock_page(page);
2809 page_cache_release(page); 2809 put_page(page);
2810 return ERR_PTR(-EIO); 2810 return ERR_PTR(-EIO);
2811 } 2811 }
2812 if (page->mapping != inode->i_mapping) { 2812 if (page->mapping != inode->i_mapping) {
2813 unlock_page(page); 2813 unlock_page(page);
2814 page_cache_release(page); 2814 put_page(page);
2815 return ERR_PTR(-EAGAIN); 2815 return ERR_PTR(-EAGAIN);
2816 } 2816 }
2817 } 2817 }
@@ -2823,7 +2823,7 @@ static int gather_extent_pages(struct inode *inode, struct page **pages,
2823 int num_pages, u64 off) 2823 int num_pages, u64 off)
2824{ 2824{
2825 int i; 2825 int i;
2826 pgoff_t index = off >> PAGE_CACHE_SHIFT; 2826 pgoff_t index = off >> PAGE_SHIFT;
2827 2827
2828 for (i = 0; i < num_pages; i++) { 2828 for (i = 0; i < num_pages; i++) {
2829again: 2829again:
@@ -2932,12 +2932,12 @@ static void btrfs_cmp_data_free(struct cmp_pages *cmp)
2932 pg = cmp->src_pages[i]; 2932 pg = cmp->src_pages[i];
2933 if (pg) { 2933 if (pg) {
2934 unlock_page(pg); 2934 unlock_page(pg);
2935 page_cache_release(pg); 2935 put_page(pg);
2936 } 2936 }
2937 pg = cmp->dst_pages[i]; 2937 pg = cmp->dst_pages[i];
2938 if (pg) { 2938 if (pg) {
2939 unlock_page(pg); 2939 unlock_page(pg);
2940 page_cache_release(pg); 2940 put_page(pg);
2941 } 2941 }
2942 } 2942 }
2943 kfree(cmp->src_pages); 2943 kfree(cmp->src_pages);
@@ -2949,7 +2949,7 @@ static int btrfs_cmp_data_prepare(struct inode *src, u64 loff,
2949 u64 len, struct cmp_pages *cmp) 2949 u64 len, struct cmp_pages *cmp)
2950{ 2950{
2951 int ret; 2951 int ret;
2952 int num_pages = PAGE_CACHE_ALIGN(len) >> PAGE_CACHE_SHIFT; 2952 int num_pages = PAGE_ALIGN(len) >> PAGE_SHIFT;
2953 struct page **src_pgarr, **dst_pgarr; 2953 struct page **src_pgarr, **dst_pgarr;
2954 2954
2955 /* 2955 /*
@@ -2987,12 +2987,12 @@ static int btrfs_cmp_data(struct inode *src, u64 loff, struct inode *dst,
2987 int ret = 0; 2987 int ret = 0;
2988 int i; 2988 int i;
2989 struct page *src_page, *dst_page; 2989 struct page *src_page, *dst_page;
2990 unsigned int cmp_len = PAGE_CACHE_SIZE; 2990 unsigned int cmp_len = PAGE_SIZE;
2991 void *addr, *dst_addr; 2991 void *addr, *dst_addr;
2992 2992
2993 i = 0; 2993 i = 0;
2994 while (len) { 2994 while (len) {
2995 if (len < PAGE_CACHE_SIZE) 2995 if (len < PAGE_SIZE)
2996 cmp_len = len; 2996 cmp_len = len;
2997 2997
2998 BUG_ON(i >= cmp->num_pages); 2998 BUG_ON(i >= cmp->num_pages);
@@ -3191,7 +3191,7 @@ ssize_t btrfs_dedupe_file_range(struct file *src_file, u64 loff, u64 olen,
3191 if (olen > BTRFS_MAX_DEDUPE_LEN) 3191 if (olen > BTRFS_MAX_DEDUPE_LEN)
3192 olen = BTRFS_MAX_DEDUPE_LEN; 3192 olen = BTRFS_MAX_DEDUPE_LEN;
3193 3193
3194 if (WARN_ON_ONCE(bs < PAGE_CACHE_SIZE)) { 3194 if (WARN_ON_ONCE(bs < PAGE_SIZE)) {
3195 /* 3195 /*
3196 * Btrfs does not support blocksize < page_size. As a 3196 * Btrfs does not support blocksize < page_size. As a
3197 * result, btrfs_cmp_data() won't correctly handle 3197 * result, btrfs_cmp_data() won't correctly handle
@@ -3891,8 +3891,8 @@ static noinline int btrfs_clone_files(struct file *file, struct file *file_src,
3891 * data immediately and not the previous data. 3891 * data immediately and not the previous data.
3892 */ 3892 */
3893 truncate_inode_pages_range(&inode->i_data, 3893 truncate_inode_pages_range(&inode->i_data,
3894 round_down(destoff, PAGE_CACHE_SIZE), 3894 round_down(destoff, PAGE_SIZE),
3895 round_up(destoff + len, PAGE_CACHE_SIZE) - 1); 3895 round_up(destoff + len, PAGE_SIZE) - 1);
3896out_unlock: 3896out_unlock:
3897 if (!same_inode) 3897 if (!same_inode)
3898 btrfs_double_inode_unlock(src, inode); 3898 btrfs_double_inode_unlock(src, inode);
@@ -4124,7 +4124,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
4124 /* we generally have at most 6 or so space infos, one for each raid 4124 /* we generally have at most 6 or so space infos, one for each raid
4125 * level. So, a whole page should be more than enough for everyone 4125 * level. So, a whole page should be more than enough for everyone
4126 */ 4126 */
4127 if (alloc_size > PAGE_CACHE_SIZE) 4127 if (alloc_size > PAGE_SIZE)
4128 return -ENOMEM; 4128 return -ENOMEM;
4129 4129
4130 space_args.total_spaces = 0; 4130 space_args.total_spaces = 0;