tty: audit: Combine push functions

tty_audit_push() and tty_audit_push_current() perform identical
tasks; eliminate the tty_audit_push() implementation and the
tty_audit_push_current() name.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Peter Hurley 2016-01-09 22:55:31 -08:00 committed by Greg Kroah-Hartman
parent b50819f437
commit 37282a7795
3 changed files with 6 additions and 39 deletions

View File

@ -172,12 +172,11 @@ void tty_audit_tiocsti(struct tty_struct *tty, char ch)
} }
/** /**
* tty_audit_push_current - Flush current's pending audit data * tty_audit_push - Flush current's pending audit data
* *
* Try to lock sighand and get a reference to the tty audit buffer if available. * Returns 0 if success, -EPERM if tty audit is disabled
* Flush the buffer or return an appropriate error code.
*/ */
int tty_audit_push_current(void) int tty_audit_push(void)
{ {
struct tty_audit_buf *buf = ERR_PTR(-EPERM); struct tty_audit_buf *buf = ERR_PTR(-EPERM);
unsigned long flags; unsigned long flags;
@ -309,31 +308,3 @@ void tty_audit_add_data(struct tty_struct *tty, const void *data, size_t size)
mutex_unlock(&buf->mutex); mutex_unlock(&buf->mutex);
tty_audit_buf_put(buf); tty_audit_buf_put(buf);
} }
/**
* tty_audit_push - Push buffered data out
*
* Make sure no audit data is pending on the current process.
*/
void tty_audit_push(void)
{
struct tty_audit_buf *buf;
unsigned long flags;
spin_lock_irqsave(&current->sighand->siglock, flags);
if (likely(!current->signal->audit_tty)) {
spin_unlock_irqrestore(&current->sighand->siglock, flags);
return;
}
buf = current->signal->tty_audit_buf;
if (buf)
atomic_inc(&buf->count);
spin_unlock_irqrestore(&current->sighand->siglock, flags);
if (buf) {
mutex_lock(&buf->mutex);
tty_audit_buf_push(buf);
mutex_unlock(&buf->mutex);
tty_audit_buf_put(buf);
}
}

View File

@ -597,8 +597,7 @@ extern void tty_audit_add_data(struct tty_struct *tty, const void *data,
extern void tty_audit_exit(void); extern void tty_audit_exit(void);
extern void tty_audit_fork(struct signal_struct *sig); extern void tty_audit_fork(struct signal_struct *sig);
extern void tty_audit_tiocsti(struct tty_struct *tty, char ch); extern void tty_audit_tiocsti(struct tty_struct *tty, char ch);
extern void tty_audit_push(void); extern int tty_audit_push(void);
extern int tty_audit_push_current(void);
#else #else
static inline void tty_audit_add_data(struct tty_struct *tty, const void *data, static inline void tty_audit_add_data(struct tty_struct *tty, const void *data,
size_t size) size_t size)
@ -613,10 +612,7 @@ static inline void tty_audit_exit(void)
static inline void tty_audit_fork(struct signal_struct *sig) static inline void tty_audit_fork(struct signal_struct *sig)
{ {
} }
static inline void tty_audit_push(void) static inline int tty_audit_push(void)
{
}
static inline int tty_audit_push_current(void)
{ {
return 0; return 0;
} }

View File

@ -920,7 +920,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
if (err == 1) { /* match or error */ if (err == 1) { /* match or error */
err = 0; err = 0;
if (msg_type == AUDIT_USER_TTY) { if (msg_type == AUDIT_USER_TTY) {
err = tty_audit_push_current(); err = tty_audit_push();
if (err) if (err)
break; break;
} }