projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[deliverable/linux.git]
/
mm
/
mmap.c
diff --git
a/mm/mmap.c
b/mm/mmap.c
index d3d9a94ca03119919bc36629c6656b43cf6db44d..de2c1769cc68d6de4744307ee45201a2f2c35cc4 100644
(file)
--- a/
mm/mmap.c
+++ b/
mm/mmap.c
@@
-168,7
+168,7
@@
static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
return next;
}
return next;
}
-static
unsigned long
do_brk(unsigned long addr, unsigned long len);
+static
int
do_brk(unsigned long addr, unsigned long len);
SYSCALL_DEFINE1(brk, unsigned long, brk)
{
SYSCALL_DEFINE1(brk, unsigned long, brk)
{
@@
-224,7
+224,7
@@
SYSCALL_DEFINE1(brk, unsigned long, brk)
goto out;
/* Ok, looks good - let it rip. */
goto out;
/* Ok, looks good - let it rip. */
- if (do_brk(oldbrk, newbrk-oldbrk)
!= oldbrk
)
+ if (do_brk(oldbrk, newbrk-oldbrk)
< 0
)
goto out;
set_brk:
goto out;
set_brk:
@@
-2625,7
+2625,7
@@
static inline void verify_mm_writelocked(struct mm_struct *mm)
* anonymous maps. eventually we may be able to do some
* brk-specific accounting here.
*/
* anonymous maps. eventually we may be able to do some
* brk-specific accounting here.
*/
-static
unsigned long
do_brk(unsigned long addr, unsigned long len)
+static
int
do_brk(unsigned long addr, unsigned long len)
{
struct mm_struct *mm = current->mm;
struct vm_area_struct *vma, *prev;
{
struct mm_struct *mm = current->mm;
struct vm_area_struct *vma, *prev;
@@
-2636,7
+2636,7
@@
static unsigned long do_brk(unsigned long addr, unsigned long len)
len = PAGE_ALIGN(len);
if (!len)
len = PAGE_ALIGN(len);
if (!len)
- return
addr
;
+ return
0
;
flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
@@
-2703,13
+2703,13
@@
out:
if (flags & VM_LOCKED)
mm->locked_vm += (len >> PAGE_SHIFT);
vma->vm_flags |= VM_SOFTDIRTY;
if (flags & VM_LOCKED)
mm->locked_vm += (len >> PAGE_SHIFT);
vma->vm_flags |= VM_SOFTDIRTY;
- return
addr
;
+ return
0
;
}
}
-
unsigned long
vm_brk(unsigned long addr, unsigned long len)
+
int
vm_brk(unsigned long addr, unsigned long len)
{
struct mm_struct *mm = current->mm;
{
struct mm_struct *mm = current->mm;
-
unsigned long
ret;
+
int
ret;
bool populate;
if (down_write_killable(&mm->mmap_sem))
bool populate;
if (down_write_killable(&mm->mmap_sem))
@@
-2718,7
+2718,7
@@
unsigned long vm_brk(unsigned long addr, unsigned long len)
ret = do_brk(addr, len);
populate = ((mm->def_flags & VM_LOCKED) != 0);
up_write(&mm->mmap_sem);
ret = do_brk(addr, len);
populate = ((mm->def_flags & VM_LOCKED) != 0);
up_write(&mm->mmap_sem);
- if (populate)
+ if (populate
&& !ret
)
mm_populate(addr, len);
return ret;
}
mm_populate(addr, len);
return ret;
}
This page took
0.038121 seconds
and
5
git commands to generate.