diff --git a/[refs] b/[refs] index c9f3d7f7e48c..cffbad6e0a22 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a3e8cc643d22d2c8ed36b9be7d9c9ca21efcf7f7 +refs/heads/master: bf9faa2aa30e2ebf30287536712ed2717bb47002 diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index 7b0b95371696..d1edf26025dc 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -1244,7 +1244,7 @@ static int do_umount(struct vfsmount *mnt, int flags) */ br_write_lock(vfsmount_lock); if (mnt_get_count(mnt) != 2) { - br_write_lock(vfsmount_lock); + br_write_unlock(vfsmount_lock); return -EBUSY; } br_write_unlock(vfsmount_lock); diff --git a/trunk/mm/mremap.c b/trunk/mm/mremap.c index 1de98d492ddc..9925b6391b80 100644 --- a/trunk/mm/mremap.c +++ b/trunk/mm/mremap.c @@ -94,7 +94,9 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd, */ mapping = vma->vm_file->f_mapping; spin_lock(&mapping->i_mmap_lock); - new_vma->vm_truncate_count = 0; + if (new_vma->vm_truncate_count && + new_vma->vm_truncate_count != vma->vm_truncate_count) + new_vma->vm_truncate_count = 0; } /*