]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/fremap.c
btrfs: fix not enough reserved space
[mv-sheeva.git] / mm / fremap.c
index 7b7f852848de5430ff5f721d3aba0c5332b19dce..ec520c7b28dffedb5027de6b27834831938671cd 100644 (file)
@@ -141,6 +141,10 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
        if (start + size <= start)
                return err;
 
+       /* Does pgoff wrap? */
+       if (pgoff + (size >> PAGE_SHIFT) < pgoff)
+               return err;
+
        /* Can we represent this offset inside this architecture's pte's? */
 #if PTE_FILE_MAX_BITS < BITS_PER_LONG
        if (pgoff + (size >> PAGE_SHIFT) >= (1UL << PTE_FILE_MAX_BITS))