diff --git a/pre-patches/2.6.32-rhel6-openvz b/pre-patches/2.6.32-rhel6-openvz new file mode 100644 index 00000000..e2a0c082 --- /dev/null +++ b/pre-patches/2.6.32-rhel6-openvz @@ -0,0 +1,182 @@ +diff -urpN source.rhel6//block/Kconfig source/block/Kconfig +--- source.rhel6//block/Kconfig 2012-11-21 12:24:27.625510977 +0100 ++++ source/block/Kconfig 2012-11-21 16:09:02.796206772 +0100 +@@ -99,6 +99,8 @@ config BLK_DEV_THROTTLING + + See Documentation/cgroups/blkio-controller.txt for more information. + ++source block/mars/Kconfig ++ + endif # BLOCK + + config BLOCK_COMPAT +diff -urpN source.rhel6//block/Makefile source/block/Makefile +--- source.rhel6//block/Makefile 2012-11-21 12:24:27.625510977 +0100 ++++ source/block/Makefile 2012-11-21 16:09:55.384556249 +0100 +@@ -18,3 +18,6 @@ obj-$(CONFIG_IOSCHED_CFQ) += cfq-iosched + + obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o + obj-$(CONFIG_BLK_DEV_INTEGRITY) += blk-integrity.o ++ ++obj-$(CONFIG_MARS) += mars/ ++ +diff -urpN source.rhel6//fs/aio.c source/fs/aio.c +--- source.rhel6//fs/aio.c 2012-11-21 12:24:35.721563886 +0100 ++++ source/fs/aio.c 2012-11-21 16:13:54.634146459 +0100 +@@ -1304,6 +1304,8 @@ out: + return ret; + } + ++EXPORT_SYMBOL(sys_io_setup); ++ + /* sys_io_destroy: + * Destroy the aio_context specified. May cancel any outstanding + * AIOs and block on completion. Will fail with -ENOSYS if not +@@ -1321,6 +1323,8 @@ SYSCALL_DEFINE1(io_destroy, aio_context_ + return -EINVAL; + } + ++EXPORT_SYMBOL(sys_io_destroy); ++ + static void aio_advance_iovec(struct kiocb *iocb, ssize_t ret) + { + struct iovec *iov = &iocb->ki_iovec[iocb->ki_cur_seg]; +@@ -1927,6 +1931,8 @@ SYSCALL_DEFINE3(io_submit, aio_context_t + return do_io_submit(ctx_id, nr, iocbpp, 0); + } + ++EXPORT_SYMBOL(sys_io_submit); ++ + /* lookup_kiocb + * Finds a given iocb for cancellation. + */ +@@ -2006,6 +2012,8 @@ SYSCALL_DEFINE3(io_cancel, aio_context_t + return ret; + } + ++EXPORT_SYMBOL(sys_io_cancel); ++ + /* io_getevents: + * Attempts to read at least min_nr events and up to nr events from + * the completion queue for the aio_context specified by ctx_id. May +@@ -2036,3 +2044,5 @@ SYSCALL_DEFINE5(io_getevents, aio_contex + asmlinkage_protect(5, ret, ctx_id, min_nr, nr, events, timeout); + return ret; + } ++ ++EXPORT_SYMBOL(sys_io_getevents); +diff -urpN source.rhel6//fs/open.c source/fs/open.c +--- source.rhel6//fs/open.c 2012-11-21 12:24:38.097579412 +0100 ++++ source/fs/open.c 2012-11-21 16:16:34.083206503 +0100 +@@ -611,6 +611,8 @@ out: + return error; + } + ++EXPORT_SYMBOL(sys_lchown); ++ + SYSCALL_DEFINE3(fchown, unsigned int, fd, uid_t, user, gid_t, group) + { + struct file * file; +diff -urpN source.rhel6//fs/utimes.c source/fs/utimes.c +--- source.rhel6//fs/utimes.c 2012-11-21 12:24:38.249580405 +0100 ++++ source/fs/utimes.c 2012-11-21 16:20:22.144720576 +0100 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +@@ -184,6 +185,8 @@ out: + return error; + } + ++EXPORT_SYMBOL(do_utimes); ++ + SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename, + struct timespec __user *, utimes, int, flags) + { +diff -urpN source.rhel6//include/linux/major.h source/include/linux/major.h +--- source.rhel6//include/linux/major.h 2012-11-21 12:24:38.717583463 +0100 ++++ source/include/linux/major.h 2012-11-21 16:21:14.865066525 +0100 +@@ -146,6 +146,7 @@ + #define UNIX98_PTY_SLAVE_MAJOR (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT) + + #define DRBD_MAJOR 147 ++#define MARS_MAJOR 148 + #define RTF_MAJOR 150 + #define RAW_MAJOR 162 + +diff -urpN source.rhel6//include/linux/sched.h source/include/linux/sched.h +--- source.rhel6//include/linux/sched.h 2012-11-21 12:24:38.953585006 +0100 ++++ source/include/linux/sched.h 2012-11-21 16:22:31.845571806 +0100 +@@ -1532,6 +1532,9 @@ struct task_struct { + /* mutex deadlock detection */ + struct mutex_waiter *blocked_on; + #endif ++#ifdef CONFIG_DEBUG_SPINLOCK ++ atomic_t lock_count; ++#endif + #ifdef CONFIG_TRACE_IRQFLAGS + unsigned int irq_events; + int hardirqs_enabled; +diff -urpN source.rhel6//lib/debug_locks.c source/lib/debug_locks.c +--- source.rhel6//lib/debug_locks.c 2012-11-21 12:24:39.849590860 +0100 ++++ source/lib/debug_locks.c 2012-11-21 16:24:06.234191565 +0100 +@@ -44,3 +44,5 @@ int debug_locks_off(void) + } + return 0; + } ++ ++EXPORT_SYMBOL(debug_locks_off); +diff -urpN source.rhel6//mm/init-mm.c source/mm/init-mm.c +--- source.rhel6//mm/init-mm.c 2012-11-21 12:24:39.929591383 +0100 ++++ source/mm/init-mm.c 2012-11-21 16:25:35.382777139 +0100 +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -18,5 +19,10 @@ struct mm_struct init_mm = { + .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), + .mmlist = LIST_HEAD_INIT(init_mm.mmlist), + .cpu_vm_mask = CPU_MASK_ALL, ++#ifdef CONFIG_AIO ++ .ioctx_lock = __SPIN_LOCK_UNLOCKED(init_mm.ioctx_lock), ++ .ioctx_list = HLIST_HEAD_INIT, ++ .get_unmapped_area = arch_get_unmapped_area, ++#endif + }; + EXPORT_SYMBOL(init_mm); +diff -urpN source.rhel6//mm/mmu_context.c source/mm/mmu_context.c +--- source.rhel6//mm/mmu_context.c 2012-11-21 12:24:39.969591645 +0100 ++++ source/mm/mmu_context.c 2012-11-21 16:26:42.839220361 +0100 +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include + +diff -urpN source.rhel6//mm/page_alloc.c source/mm/page_alloc.c +--- source.rhel6//mm/page_alloc.c 2012-11-21 12:24:39.985591749 +0100 ++++ source/mm/page_alloc.c 2012-11-21 16:29:13.160208474 +0100 +@@ -168,6 +168,7 @@ static char * const zone_names[MAX_NR_ZO + * tuned according to the amount of memory in the system. + */ + int min_free_kbytes = 1024; ++EXPORT_SYMBOL(min_free_kbytes); + + /* + * Extra memory for the system to try freeing between the min and +@@ -5125,6 +5126,8 @@ void setup_per_zone_wmarks(void) + calculate_totalreserve_pages(); + } + ++EXPORT_SYMBOL(setup_per_zone_wmarks); ++ + /* + * The inactive anon list should be small enough that the VM never has to + * do too much work, but large enough that each inactive page has a chance