aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/alloc.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-01-21 22:05:45 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-01-21 22:05:45 -0500
commitdf32e43a54d04eda35d2859beaf90e3864d53288 (patch)
tree7a61cf658b2949bd426285eb9902be7758ced1ba /fs/ocfs2/alloc.c
parentfbd918a2026d0464ce9c23f57b7de4bcfccdc2e6 (diff)
parent78d5506e82b21a1a1de68c24182db2c2fe521422 (diff)
Merge branch 'akpm' (incoming from Andrew)
Merge first patch-bomb from Andrew Morton: - a couple of misc things - inotify/fsnotify work from Jan - ocfs2 updates (partial) - about half of MM * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (117 commits) mm/migrate: remove unused function, fail_migrate_page() mm/migrate: remove putback_lru_pages, fix comment on putback_movable_pages mm/migrate: correct failure handling if !hugepage_migration_support() mm/migrate: add comment about permanent failure path mm, page_alloc: warn for non-blockable __GFP_NOFAIL allocation failure mm: compaction: reset scanner positions immediately when they meet mm: compaction: do not mark unmovable pageblocks as skipped in async compaction mm: compaction: detect when scanners meet in isolate_freepages mm: compaction: reset cached scanner pfn's before reading them mm: compaction: encapsulate defer reset logic mm: compaction: trace compaction begin and end memcg, oom: lock mem_cgroup_print_oom_info sched: add tracepoints related to NUMA task migration mm: numa: do not automatically migrate KSM pages mm: numa: trace tasks that fail migration due to rate limiting mm: numa: limit scope of lock for NUMA migrate rate limiting mm: numa: make NUMA-migrate related functions static lib/show_mem.c: show num_poisoned_pages when oom mm/hwpoison: add '#' to hwpoison_inject mm/memblock: use WARN_ONCE when MAX_NUMNODES passed as input parameter ...
Diffstat (limited to 'fs/ocfs2/alloc.c')
-rw-r--r--fs/ocfs2/alloc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index dc7411fe185d..8750ae1b8636 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -7260,14 +7260,8 @@ int ocfs2_trim_fs(struct super_block *sb, struct fstrim_range *range)
7260 start = range->start >> osb->s_clustersize_bits; 7260 start = range->start >> osb->s_clustersize_bits;
7261 len = range->len >> osb->s_clustersize_bits; 7261 len = range->len >> osb->s_clustersize_bits;
7262 minlen = range->minlen >> osb->s_clustersize_bits; 7262 minlen = range->minlen >> osb->s_clustersize_bits;
7263 trimmed = 0;
7264
7265 if (!len) {
7266 range->len = 0;
7267 return 0;
7268 }
7269 7263
7270 if (minlen >= osb->bitmap_cpg) 7264 if (minlen >= osb->bitmap_cpg || range->len < sb->s_blocksize)
7271 return -EINVAL; 7265 return -EINVAL;
7272 7266
7273 main_bm_inode = ocfs2_get_system_file_inode(osb, 7267 main_bm_inode = ocfs2_get_system_file_inode(osb,
@@ -7293,6 +7287,7 @@ int ocfs2_trim_fs(struct super_block *sb, struct fstrim_range *range)
7293 goto out_unlock; 7287 goto out_unlock;
7294 } 7288 }
7295 7289
7290 len = range->len >> osb->s_clustersize_bits;
7296 if (start + len > le32_to_cpu(main_bm->i_clusters)) 7291 if (start + len > le32_to_cpu(main_bm->i_clusters))
7297 len = le32_to_cpu(main_bm->i_clusters) - start; 7292 len = le32_to_cpu(main_bm->i_clusters) - start;
7298 7293
@@ -7307,6 +7302,7 @@ int ocfs2_trim_fs(struct super_block *sb, struct fstrim_range *range)
7307 last_group = ocfs2_which_cluster_group(main_bm_inode, start + len - 1); 7302 last_group = ocfs2_which_cluster_group(main_bm_inode, start + len - 1);
7308 last_bit = osb->bitmap_cpg; 7303 last_bit = osb->bitmap_cpg;
7309 7304
7305 trimmed = 0;
7310 for (group = first_group; group <= last_group;) { 7306 for (group = first_group; group <= last_group;) {
7311 if (first_bit + len >= osb->bitmap_cpg) 7307 if (first_bit + len >= osb->bitmap_cpg)
7312 last_bit = osb->bitmap_cpg; 7308 last_bit = osb->bitmap_cpg;