Unverified Commit 688d9c48 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!11566 v2 tracefs: Use generic inode RCU for synchronizing freeing

parents 727569fa 1127d551
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -53,15 +53,14 @@ static struct inode *tracefs_alloc_inode(struct super_block *sb)
	return &ti->vfs_inode;
}

static void tracefs_free_inode_rcu(struct rcu_head *rcu)
static void tracefs_free_inode(struct inode *inode)
{
	struct tracefs_inode *ti;
	struct tracefs_inode *ti = get_tracefs(inode);

	ti = container_of(rcu, struct tracefs_inode, rcu);
	kmem_cache_free(tracefs_inode_cachep, ti);
}

static void tracefs_free_inode(struct inode *inode)
static void tracefs_destroy_inode(struct inode *inode)
{
	struct tracefs_inode *ti = get_tracefs(inode);
	unsigned long flags;
@@ -69,8 +68,6 @@ static void tracefs_free_inode(struct inode *inode)
	spin_lock_irqsave(&tracefs_inode_lock, flags);
	list_del_rcu(&ti->list);
	spin_unlock_irqrestore(&tracefs_inode_lock, flags);

	call_rcu(&ti->rcu, tracefs_free_inode_rcu);
}

static ssize_t default_read_file(struct file *file, char __user *buf,
@@ -458,6 +455,7 @@ static int tracefs_drop_inode(struct inode *inode)
static const struct super_operations tracefs_super_operations = {
	.alloc_inode    = tracefs_alloc_inode,
	.free_inode     = tracefs_free_inode,
	.destroy_inode  = tracefs_destroy_inode,
	.drop_inode     = tracefs_drop_inode,
	.statfs		= simple_statfs,
	.remount_fs	= tracefs_remount,
+1 −4
Original line number Diff line number Diff line
@@ -10,10 +10,7 @@ enum {
};

struct tracefs_inode {
	union {
	struct inode            vfs_inode;
		struct rcu_head		rcu;
	};
	/* The below gets initialized with memset_after(ti, 0, vfs_inode) */
	struct list_head	list;
	unsigned long           flags;