diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-07-28 20:05:50 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-07-30 00:28:58 +0300 |
commit | d614146d18159e54d4dfc289e4c1534ccc485cf2 (patch) | |
tree | 60c87c3c1af635106d8d1c3ae4fcdc73e5c4a1c2 /fs | |
parent | 1a81a8f2a5918956e214bb718099a89e500e7ec5 (diff) | |
download | linux-d614146d18159e54d4dfc289e4c1534ccc485cf2.tar.xz |
fold dentry_rcuwalk_invalidate() into its only remaining caller
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/dcache.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index b90cf8e09d5b..6a629f50c3cf 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -316,20 +316,6 @@ static void dentry_free(struct dentry *dentry) call_rcu(&dentry->d_u.d_rcu, __d_free); } -/** - * dentry_rcuwalk_invalidate - invalidate in-progress rcu-walk lookups - * @dentry: the target dentry - * After this call, in-progress rcu-walk path lookup will fail. This - * should be called after unhashing, and after changing d_inode (if - * the dentry has not already been unhashed). - */ -static inline void dentry_rcuwalk_invalidate(struct dentry *dentry) -{ - lockdep_assert_held(&dentry->d_lock); - /* Go through am invalidation barrier */ - write_seqcount_invalidate(&dentry->d_seq); -} - /* * Release the dentry's inode, using the filesystem * d_iput() operation if defined. @@ -468,7 +454,8 @@ void __d_drop(struct dentry *dentry) __hlist_bl_del(&dentry->d_hash); dentry->d_hash.pprev = NULL; hlist_bl_unlock(b); - dentry_rcuwalk_invalidate(dentry); + /* After this call, in-progress rcu-walk path lookup will fail. */ + write_seqcount_invalidate(&dentry->d_seq); } } EXPORT_SYMBOL(__d_drop); |