Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8cff84f authored by Al Viro's avatar Al Viro
Browse files

fold security_file_free() into file_free()



.. and the call of file_free() in case of security_file_alloc() failure
in get_empty_filp() should be simply file_free_rcu() - no point in
rcu-delays there, anyway.

Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent c7e9075f
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ static void file_free_rcu(struct rcu_head *head)

static inline void file_free(struct file *f)
{
	security_file_free(f);
	percpu_counter_dec(&nr_files);
	call_rcu(&f->f_u.fu_rcuhead, file_free_rcu);
}
@@ -123,11 +124,10 @@ struct file *get_empty_filp(void)
	if (unlikely(!f))
		return ERR_PTR(-ENOMEM);

	percpu_counter_inc(&nr_files);
	f->f_cred = get_cred(cred);
	error = security_file_alloc(f);
	if (unlikely(error)) {
		file_free(f);
		file_free_rcu(&f->f_u.fu_rcuhead);
		return ERR_PTR(error);
	}

@@ -137,6 +137,7 @@ struct file *get_empty_filp(void)
	mutex_init(&f->f_pos_lock);
	eventpoll_init_file(f);
	/* f->f_version: 0 */
	percpu_counter_inc(&nr_files);
	return f;

over:
@@ -207,7 +208,6 @@ static void __fput(struct file *file)
	}
	if (file->f_op->release)
		file->f_op->release(inode, file);
	security_file_free(file);
	if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL &&
		     !(file->f_mode & FMODE_PATH))) {
		cdev_put(inode->i_cdev);
@@ -302,11 +302,9 @@ EXPORT_SYMBOL(fput);

void put_filp(struct file *file)
{
	if (atomic_long_dec_and_test(&file->f_count)) {
		security_file_free(file);
	if (atomic_long_dec_and_test(&file->f_count))
		file_free(file);
}
}

void __init files_init(void)
{