View | Details | Raw Unified | Return to bug 49117
Collapse All | Expand All

(-)linux-2.4.21/mm/mremap.c (-2 / +7 lines)
Lines 291-297 unsigned long do_mremap(unsigned long ad Link Here
291
		if ((addr <= new_addr) && (addr+old_len) > new_addr)
291
		if ((addr <= new_addr) && (addr+old_len) > new_addr)
292
			goto out;
292
			goto out;
293
293
294
		do_munmap(current->mm, new_addr, new_len);
294
		ret = do_munmap(current->mm, new_addr, new_len);
295
		if (ret && new_len)
296
			goto out;
295
	}
297
	}
296
298
297
	/*
299
	/*
Lines 300-306 unsigned long do_mremap(unsigned long ad Link Here
300
	 */
302
	 */
301
	ret = addr;
303
	ret = addr;
302
	if (old_len >= new_len) {
304
	if (old_len >= new_len) {
303
		do_munmap(current->mm, addr+new_len, old_len - new_len);
305
		ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
306
		if (ret && old_len != new_len)
307
			goto out;
308
		ret = addr;
304
		if (!(flags & MREMAP_FIXED) || (new_addr == addr))
309
		if (!(flags & MREMAP_FIXED) || (new_addr == addr))
305
			goto out;
310
			goto out;
306
	}
311
	}

Return to bug 49117