diff options
author | Nathan O <otternes@cs.unc.edu> | 2019-12-09 14:59:56 -0500 |
---|---|---|
committer | Nathan O <otternes@cs.unc.edu> | 2019-12-09 14:59:56 -0500 |
commit | 3c4abebc788e9d92d776d7bc8b778f398cdb4010 (patch) | |
tree | 7392a57bb2d5e0e61cd3a03bae0e8ce79991f6d5 /fs | |
parent | 2627f203874e04500ea80f6e588cd659bec5866b (diff) |
Initial attempt to "connect the wires"
- This is my first attempt to re-add all of the modifications on top of
this version of the Linux kernel that were present in the previous
version of LITMUS.
- More notes on changes will follow after testing--no guarantees the
code as it is now will compile or run correctly.
Diffstat (limited to 'fs')
-rw-r--r-- | fs/exec.c | 3 | ||||
-rw-r--r-- | fs/inode.c | 2 | ||||
-rw-r--r-- | fs/select.c | 6 |
3 files changed, 9 insertions, 2 deletions
@@ -64,6 +64,8 @@ | |||
64 | #include <linux/compat.h> | 64 | #include <linux/compat.h> |
65 | #include <linux/vmalloc.h> | 65 | #include <linux/vmalloc.h> |
66 | 66 | ||
67 | #include <litmus/litmus.h> | ||
68 | |||
67 | #include <linux/uaccess.h> | 69 | #include <linux/uaccess.h> |
68 | #include <asm/mmu_context.h> | 70 | #include <asm/mmu_context.h> |
69 | #include <asm/tlb.h> | 71 | #include <asm/tlb.h> |
@@ -1765,6 +1767,7 @@ static int __do_execve_file(int fd, struct filename *filename, | |||
1765 | goto out_unmark; | 1767 | goto out_unmark; |
1766 | 1768 | ||
1767 | sched_exec(); | 1769 | sched_exec(); |
1770 | litmus_exec(); | ||
1768 | 1771 | ||
1769 | bprm->file = file; | 1772 | bprm->file = file; |
1770 | if (!filename) { | 1773 | if (!filename) { |
diff --git a/fs/inode.c b/fs/inode.c index fef457a42882..abf61717d9db 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -394,6 +394,8 @@ void inode_init_once(struct inode *inode) | |||
394 | INIT_LIST_HEAD(&inode->i_lru); | 394 | INIT_LIST_HEAD(&inode->i_lru); |
395 | __address_space_init_once(&inode->i_data); | 395 | __address_space_init_once(&inode->i_data); |
396 | i_size_ordered_init(inode); | 396 | i_size_ordered_init(inode); |
397 | INIT_LIST_HEAD(&inode->i_obj_list); | ||
398 | mutex_init(&inode->i_obj_mutex); | ||
397 | } | 399 | } |
398 | EXPORT_SYMBOL(inode_init_once); | 400 | EXPORT_SYMBOL(inode_init_once); |
399 | 401 | ||
diff --git a/fs/select.c b/fs/select.c index 53a0c149f528..7a3745f8d17f 100644 --- a/fs/select.c +++ b/fs/select.c | |||
@@ -32,6 +32,8 @@ | |||
32 | #include <net/busy_poll.h> | 32 | #include <net/busy_poll.h> |
33 | #include <linux/vmalloc.h> | 33 | #include <linux/vmalloc.h> |
34 | 34 | ||
35 | #include <litmus/litmus.h> | ||
36 | |||
35 | #include <linux/uaccess.h> | 37 | #include <linux/uaccess.h> |
36 | 38 | ||
37 | 39 | ||
@@ -80,9 +82,9 @@ u64 select_estimate_accuracy(struct timespec64 *tv) | |||
80 | /* | 82 | /* |
81 | * Realtime tasks get a slack of 0 for obvious reasons. | 83 | * Realtime tasks get a slack of 0 for obvious reasons. |
82 | */ | 84 | */ |
83 | 85 | if (rt_task(current) || is_realtime(current)) { | |
84 | if (rt_task(current)) | ||
85 | return 0; | 86 | return 0; |
87 | } | ||
86 | 88 | ||
87 | ktime_get_ts64(&now); | 89 | ktime_get_ts64(&now); |
88 | now = timespec64_sub(*tv, now); | 90 | now = timespec64_sub(*tv, now); |