mirror of https://github.com/schoebel/mars
183 lines
5.9 KiB
Plaintext
183 lines
5.9 KiB
Plaintext
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/kernel/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/kernel/
|
|
+
|
|
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 <linux/module.h>
|
|
#include <linux/compiler.h>
|
|
#include <linux/file.h>
|
|
#include <linux/fs.h>
|
|
@@ -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 <linux/list.h>
|
|
#include <linux/cpumask.h>
|
|
#include <linux/module.h>
|
|
+#include <linux/sched.h>
|
|
|
|
#include <asm/atomic.h>
|
|
#include <asm/pgtable.h>
|
|
@@ -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 <linux/mmu_context.h>
|
|
#include <linux/module.h>
|
|
#include <linux/sched.h>
|
|
+#include <linux/module.h>
|
|
|
|
#include <asm/mmu_context.h>
|
|
|
|
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
|