aboutsummaryrefslogtreecommitdiffstats
path: root/fs/autofs4/autofs_i.h
diff options
context:
space:
mode:
authorIan Kent <raven@themaw.net>2011-01-14 13:45:58 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2011-01-15 20:07:37 -0500
commit10584211e48036182212b598cc53331776406d60 (patch)
treeb66067b47a1104c3ae3ccd4248c9b41d5b869c5e /fs/autofs4/autofs_i.h
parentdb3729153e82ba3ada89681f26c4f1b6d6807a80 (diff)
autofs4: Add d_automount() dentry operation
Add a function to use the newly defined ->d_automount() dentry operation for triggering mounts instead of doing the user space callback in ->lookup() and ->d_revalidate(). Note, to be useful the subsequent patch to add the ->d_manage() dentry operation is also needed so the discussion of functionality is deferred to that patch. Signed-off-by: Ian Kent <raven@themaw.net> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/autofs4/autofs_i.h')
-rw-r--r--fs/autofs4/autofs_i.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index eb67953452bb..1ebfe53872b5 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -218,6 +218,36 @@ extern const struct inode_operations autofs4_direct_root_inode_operations;
218extern const struct file_operations autofs4_dir_operations; 218extern const struct file_operations autofs4_dir_operations;
219extern const struct file_operations autofs4_root_operations; 219extern const struct file_operations autofs4_root_operations;
220 220
221/* Operations methods */
222
223struct vfsmount *autofs4_d_automount(struct path *);
224
225/* VFS automount flags management functions */
226
227static inline void __managed_dentry_set_automount(struct dentry *dentry)
228{
229 dentry->d_flags |= DCACHE_NEED_AUTOMOUNT;
230}
231
232static inline void managed_dentry_set_automount(struct dentry *dentry)
233{
234 spin_lock(&dentry->d_lock);
235 __managed_dentry_set_automount(dentry);
236 spin_unlock(&dentry->d_lock);
237}
238
239static inline void __managed_dentry_clear_automount(struct dentry *dentry)
240{
241 dentry->d_flags &= ~DCACHE_NEED_AUTOMOUNT;
242}
243
244static inline void managed_dentry_clear_automount(struct dentry *dentry)
245{
246 spin_lock(&dentry->d_lock);
247 __managed_dentry_clear_automount(dentry);
248 spin_unlock(&dentry->d_lock);
249}
250
221/* Initializing function */ 251/* Initializing function */
222 252
223int autofs4_fill_super(struct super_block *, void *, int); 253int autofs4_fill_super(struct super_block *, void *, int);