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

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

trim fsnotify hooks a bit



fsnotify_d_move()/__fsnotify_d_instantiate()/__fsnotify_update_dcache_flags()
are identical to each other, regardless of the config.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 77d5a6b7
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -1769,7 +1769,7 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
	raw_write_seqcount_begin(&dentry->d_seq);
	raw_write_seqcount_begin(&dentry->d_seq);
	__d_set_inode_and_type(dentry, inode, add_flags);
	__d_set_inode_and_type(dentry, inode, add_flags);
	raw_write_seqcount_end(&dentry->d_seq);
	raw_write_seqcount_end(&dentry->d_seq);
	__fsnotify_d_instantiate(dentry);
	fsnotify_update_flags(dentry);
	spin_unlock(&dentry->d_lock);
	spin_unlock(&dentry->d_lock);
}
}


@@ -2563,7 +2563,7 @@ static inline void __d_add(struct dentry *dentry, struct inode *inode)
		raw_write_seqcount_begin(&dentry->d_seq);
		raw_write_seqcount_begin(&dentry->d_seq);
		__d_set_inode_and_type(dentry, inode, add_flags);
		__d_set_inode_and_type(dentry, inode, add_flags);
		raw_write_seqcount_end(&dentry->d_seq);
		raw_write_seqcount_end(&dentry->d_seq);
		__fsnotify_d_instantiate(dentry);
		fsnotify_update_flags(dentry);
	}
	}
	_d_rehash(dentry);
	_d_rehash(dentry);
	if (dir)
	if (dir)
@@ -2853,8 +2853,8 @@ static void __d_move(struct dentry *dentry, struct dentry *target,
		list_move(&target->d_child, &target->d_parent->d_subdirs);
		list_move(&target->d_child, &target->d_parent->d_subdirs);
		list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
		list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
		if (exchange)
		if (exchange)
			fsnotify_d_move(target);
			fsnotify_update_flags(target);
		fsnotify_d_move(dentry);
		fsnotify_update_flags(dentry);
	}
	}


	write_seqcount_end(&target->d_seq);
	write_seqcount_end(&target->d_seq);
+0 −12
Original line number Original line Diff line number Diff line
@@ -51,18 +51,6 @@ static inline int fsnotify_perm(struct file *file, int mask)
	return fsnotify(inode, fsnotify_mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
	return fsnotify(inode, fsnotify_mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
}
}


/*
 * fsnotify_d_move - dentry has been moved
 */
static inline void fsnotify_d_move(struct dentry *dentry)
{
	/*
	 * On move we need to update dentry->d_flags to indicate if the new parent
	 * cares about events from this dentry.
	 */
	__fsnotify_update_dcache_flags(dentry);
}

/*
/*
 * fsnotify_link_count - inode's link count changed
 * fsnotify_link_count - inode's link count changed
 */
 */
+3 −17
Original line number Original line Diff line number Diff line
@@ -267,10 +267,8 @@ static inline int fsnotify_inode_watches_children(struct inode *inode)
 * Update the dentry with a flag indicating the interest of its parent to receive
 * Update the dentry with a flag indicating the interest of its parent to receive
 * filesystem events when those events happens to this dentry->d_inode.
 * filesystem events when those events happens to this dentry->d_inode.
 */
 */
static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
static inline void fsnotify_update_flags(struct dentry *dentry)
{
{
	struct dentry *parent;

	assert_spin_locked(&dentry->d_lock);
	assert_spin_locked(&dentry->d_lock);


	/*
	/*
@@ -280,21 +278,12 @@ static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
	 * find our entry, so it will spin until we complete here, and update
	 * find our entry, so it will spin until we complete here, and update
	 * us with the new state.
	 * us with the new state.
	 */
	 */
	parent = dentry->d_parent;
	if (fsnotify_inode_watches_children(dentry->d_parent->d_inode))
	if (fsnotify_inode_watches_children(parent->d_inode))
		dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED;
		dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED;
	else
	else
		dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED;
		dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED;
}
}


/*
 * fsnotify_d_instantiate - instantiate a dentry for inode
 */
static inline void __fsnotify_d_instantiate(struct dentry *dentry)
{
	__fsnotify_update_dcache_flags(dentry);
}

/* called from fsnotify listeners, such as fanotify or dnotify */
/* called from fsnotify listeners, such as fanotify or dnotify */


/* create a new group */
/* create a new group */
@@ -386,10 +375,7 @@ static inline void __fsnotify_inode_delete(struct inode *inode)
static inline void __fsnotify_vfsmount_delete(struct vfsmount *mnt)
static inline void __fsnotify_vfsmount_delete(struct vfsmount *mnt)
{}
{}


static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
static inline void fsnotify_update_flags(struct dentry *dentry)
{}

static inline void __fsnotify_d_instantiate(struct dentry *dentry)
{}
{}


static inline u32 fsnotify_get_cookie(void)
static inline u32 fsnotify_get_cookie(void)