diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-24 21:41:47 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-25 23:16:26 -0500 |
commit | 5e993e2534e29b62790f9a2908b551b7fb3a63f0 (patch) | |
tree | 3278906dba789c91609feb98f636538031e61dd8 /fs/ncpfs/ncplib_kernel.h | |
parent | ad52184b705c1048aa01225eccde119ef5c93000 (diff) |
ncpfs: get rid of d_validate() nonsense
What we want is to have non-counting references to children in
pagecache of parent directory, and avoid picking them after a child
has been freed. Fine, so let's just have ->d_prune() clear
parent's inode "has directory contents in page cache" flag.
That way we don't need ->d_fsdata for storing offsets, so we can
use it as a quick and dirty "is it referenced from page cache"
flag.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ncpfs/ncplib_kernel.h')
-rw-r--r-- | fs/ncpfs/ncplib_kernel.h | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/fs/ncpfs/ncplib_kernel.h b/fs/ncpfs/ncplib_kernel.h index b785f74bfe3c..250e443a07f3 100644 --- a/fs/ncpfs/ncplib_kernel.h +++ b/fs/ncpfs/ncplib_kernel.h | |||
@@ -184,36 +184,6 @@ ncp_new_dentry(struct dentry* dentry) | |||
184 | dentry->d_time = jiffies; | 184 | dentry->d_time = jiffies; |
185 | } | 185 | } |
186 | 186 | ||
187 | static inline void | ||
188 | ncp_renew_dentries(struct dentry *parent) | ||
189 | { | ||
190 | struct ncp_server *server = NCP_SERVER(parent->d_inode); | ||
191 | struct dentry *dentry; | ||
192 | |||
193 | spin_lock(&parent->d_lock); | ||
194 | list_for_each_entry(dentry, &parent->d_subdirs, d_child) { | ||
195 | if (dentry->d_fsdata == NULL) | ||
196 | ncp_age_dentry(server, dentry); | ||
197 | else | ||
198 | ncp_new_dentry(dentry); | ||
199 | } | ||
200 | spin_unlock(&parent->d_lock); | ||
201 | } | ||
202 | |||
203 | static inline void | ||
204 | ncp_invalidate_dircache_entries(struct dentry *parent) | ||
205 | { | ||
206 | struct ncp_server *server = NCP_SERVER(parent->d_inode); | ||
207 | struct dentry *dentry; | ||
208 | |||
209 | spin_lock(&parent->d_lock); | ||
210 | list_for_each_entry(dentry, &parent->d_subdirs, d_child) { | ||
211 | dentry->d_fsdata = NULL; | ||
212 | ncp_age_dentry(server, dentry); | ||
213 | } | ||
214 | spin_unlock(&parent->d_lock); | ||
215 | } | ||
216 | |||
217 | struct ncp_cache_head { | 187 | struct ncp_cache_head { |
218 | time_t mtime; | 188 | time_t mtime; |
219 | unsigned long time; /* cache age */ | 189 | unsigned long time; /* cache age */ |