aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChristopher Kenna <cjk@cs.unc.edu>2012-09-29 16:50:30 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2012-09-29 16:50:30 -0400
commitfe23bc6b4d29552409354ed74a0b066a6fc647cb (patch)
tree36aa9a5e676196da3fa4bfbfb68489a84f9b3dbe /fs
parent611926edc62a15f77b891658ac70cb66e7a638f2 (diff)
parente6f51fb826ce98d436f445aae4eb9e9dba1f30e8 (diff)
Merge LITMUS^RT staging (as of time of this commit).
Conflicts: Makefile include/linux/sched.h
Diffstat (limited to 'fs')
-rw-r--r--fs/exec.c13
-rw-r--r--fs/inode.c2
2 files changed, 10 insertions, 5 deletions
diff --git a/fs/exec.c b/fs/exec.c
index 044c13ffdc4..188d5974f3e 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -19,7 +19,7 @@
19 * current->executable is only used by the procfs. This allows a dispatch 19 * current->executable is only used by the procfs. This allows a dispatch
20 * table to check for several different types of binary formats. We keep 20 * table to check for several different types of binary formats. We keep
21 * trying until we recognize the file or we run out of supported binary 21 * trying until we recognize the file or we run out of supported binary
22 * formats. 22 * formats.
23 */ 23 */
24 24
25#include <linux/slab.h> 25#include <linux/slab.h>
@@ -56,6 +56,8 @@
56#include <linux/oom.h> 56#include <linux/oom.h>
57#include <linux/compat.h> 57#include <linux/compat.h>
58 58
59#include <litmus/litmus.h>
60
59#include <asm/uaccess.h> 61#include <asm/uaccess.h>
60#include <asm/mmu_context.h> 62#include <asm/mmu_context.h>
61#include <asm/tlb.h> 63#include <asm/tlb.h>
@@ -85,7 +87,7 @@ int __register_binfmt(struct linux_binfmt * fmt, int insert)
85 insert ? list_add(&fmt->lh, &formats) : 87 insert ? list_add(&fmt->lh, &formats) :
86 list_add_tail(&fmt->lh, &formats); 88 list_add_tail(&fmt->lh, &formats);
87 write_unlock(&binfmt_lock); 89 write_unlock(&binfmt_lock);
88 return 0; 90 return 0;
89} 91}
90 92
91EXPORT_SYMBOL(__register_binfmt); 93EXPORT_SYMBOL(__register_binfmt);
@@ -1160,7 +1162,7 @@ void setup_new_exec(struct linux_binprm * bprm)
1160 group */ 1162 group */
1161 1163
1162 current->self_exec_id++; 1164 current->self_exec_id++;
1163 1165
1164 flush_signal_handlers(current, 0); 1166 flush_signal_handlers(current, 0);
1165 flush_old_files(current->files); 1167 flush_old_files(current->files);
1166} 1168}
@@ -1250,8 +1252,8 @@ int check_unsafe_exec(struct linux_binprm *bprm)
1250 return res; 1252 return res;
1251} 1253}
1252 1254
1253/* 1255/*
1254 * Fill the binprm structure from the inode. 1256 * Fill the binprm structure from the inode.
1255 * Check permissions, then read the first 128 (BINPRM_BUF_SIZE) bytes 1257 * Check permissions, then read the first 128 (BINPRM_BUF_SIZE) bytes
1256 * 1258 *
1257 * This may be called multiple times for binary chains (scripts for example). 1259 * This may be called multiple times for binary chains (scripts for example).
@@ -1461,6 +1463,7 @@ static int do_execve_common(const char *filename,
1461 goto out_unmark; 1463 goto out_unmark;
1462 1464
1463 sched_exec(); 1465 sched_exec();
1466 litmus_exec();
1464 1467
1465 bprm->file = file; 1468 bprm->file = file;
1466 bprm->filename = filename; 1469 bprm->filename = filename;
diff --git a/fs/inode.c b/fs/inode.c
index 09f334bf27d..7aa468a4b19 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -307,6 +307,8 @@ void inode_init_once(struct inode *inode)
307#ifdef CONFIG_FSNOTIFY 307#ifdef CONFIG_FSNOTIFY
308 INIT_HLIST_HEAD(&inode->i_fsnotify_marks); 308 INIT_HLIST_HEAD(&inode->i_fsnotify_marks);
309#endif 309#endif
310 INIT_LIST_HEAD(&inode->i_obj_list);
311 mutex_init(&inode->i_obj_mutex);
310} 312}
311EXPORT_SYMBOL(inode_init_once); 313EXPORT_SYMBOL(inode_init_once);
312 314