{
        unsigned long end;
        unsigned long len;
+       int error;
        struct madvise_behavior madv_behavior = {
                .mm = mm,
                .behavior = __MADV_SET_ANON_VMA_NAME,
-               .lock_mode = MADVISE_MMAP_WRITE_LOCK,
                .anon_name = anon_name,
        };
 
 
        madv_behavior.range.start = start;
        madv_behavior.range.end = end;
-       return madvise_walk_vmas(&madv_behavior);
+
+       error = madvise_lock(&madv_behavior);
+       if (error)
+               return error;
+       error = madvise_walk_vmas(&madv_behavior);
+       madvise_unlock(&madv_behavior);
+
+       return error;
 }
 
 int set_anon_vma_name(unsigned long addr, unsigned long size,
                        return -ENOMEM;
        }
 
-       mmap_write_lock(mm);
        error = madvise_set_anon_name(mm, addr, size, anon_name);
-       mmap_write_unlock(mm);
        anon_vma_name_put(anon_name);
 
        return error;