Browse Source

[PATCH] no need to wank with task_lock() and pinning task down in audit_syscall_exit()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 19 years ago
parent
commit
97e94c4530
1 changed files with 1 additions and 9 deletions
  1. 1 9
      kernel/auditsc.c

+ 1 - 9
kernel/auditsc.c

@@ -329,7 +329,6 @@ static enum audit_state audit_filter_syscall(struct task_struct *tsk,
 	return AUDIT_BUILD_CONTEXT;
 	return AUDIT_BUILD_CONTEXT;
 }
 }
 
 
-/* This should be called with task_lock() held. */
 static inline struct audit_context *audit_get_context(struct task_struct *tsk,
 static inline struct audit_context *audit_get_context(struct task_struct *tsk,
 						      int return_valid,
 						      int return_valid,
 						      int return_code)
 						      int return_code)
@@ -823,15 +822,10 @@ void audit_syscall_exit(int valid, long return_code)
 	struct task_struct *tsk = current;
 	struct task_struct *tsk = current;
 	struct audit_context *context;
 	struct audit_context *context;
 
 
-	get_task_struct(tsk);
-	task_lock(tsk);
 	context = audit_get_context(tsk, valid, return_code);
 	context = audit_get_context(tsk, valid, return_code);
-	task_unlock(tsk);
 
 
-	/* Not having a context here is ok, since the parent may have
-	 * called __put_task_struct. */
 	if (likely(!context))
 	if (likely(!context))
-		goto out;
+		return;
 
 
 	if (context->in_syscall && context->auditable)
 	if (context->in_syscall && context->auditable)
 		audit_log_exit(context, tsk);
 		audit_log_exit(context, tsk);
@@ -849,8 +843,6 @@ void audit_syscall_exit(int valid, long return_code)
 		audit_free_aux(context);
 		audit_free_aux(context);
 		tsk->audit_context = context;
 		tsk->audit_context = context;
 	}
 	}
- out:
-	put_task_struct(tsk);
 }
 }
 
 
 /**
 /**