Commit 36b6413e authored by Ian Kent's avatar Ian Kent Committed by Linus Torvalds

autofs4: use helper function for need mount check

Define simple helper function for checking if we need to trigger a mount.
Signed-off-by: default avatarIan Kent <raven@themaw.net>
Cc: Sage Weil <sage@newdream.net>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Cc: Andreas Dilger <adilger@sun.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Yehuda Saheh <yehuda@newdream.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c4cd70b3
...@@ -104,6 +104,14 @@ static void autofs4_del_active(struct dentry *dentry) ...@@ -104,6 +104,14 @@ static void autofs4_del_active(struct dentry *dentry)
return; return;
} }
static unsigned int autofs4_need_mount(unsigned int flags)
{
unsigned int res = 0;
if (flags & (TRIGGER_FLAGS | TRIGGER_INTENTS))
res = 1;
return res;
}
static int autofs4_dir_open(struct inode *inode, struct file *file) static int autofs4_dir_open(struct inode *inode, struct file *file)
{ {
struct dentry *dentry = file->f_path.dentry; struct dentry *dentry = file->f_path.dentry;
...@@ -168,7 +176,7 @@ static int try_to_fill_dentry(struct dentry *dentry, int flags) ...@@ -168,7 +176,7 @@ static int try_to_fill_dentry(struct dentry *dentry, int flags)
} }
/* Trigger mount for path component or follow link */ /* Trigger mount for path component or follow link */
} else if (dentry->d_flags & DCACHE_AUTOFS_PENDING || } else if (dentry->d_flags & DCACHE_AUTOFS_PENDING ||
flags & (TRIGGER_FLAGS | TRIGGER_INTENTS) || autofs4_need_mount(flags) ||
current->link_count) { current->link_count) {
DPRINTK("waiting for mount name=%.*s", DPRINTK("waiting for mount name=%.*s",
dentry->d_name.len, dentry->d_name.name); dentry->d_name.len, dentry->d_name.name);
...@@ -234,7 +242,7 @@ static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd) ...@@ -234,7 +242,7 @@ static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd)
autofs4_expire_wait(dentry); autofs4_expire_wait(dentry);
/* We trigger a mount for almost all flags */ /* We trigger a mount for almost all flags */
lookup_type = nd->flags & (TRIGGER_FLAGS | TRIGGER_INTENTS); lookup_type = autofs4_need_mount(nd->flags);
if (!(lookup_type || dentry->d_flags & DCACHE_AUTOFS_PENDING)) if (!(lookup_type || dentry->d_flags & DCACHE_AUTOFS_PENDING))
goto follow; goto follow;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment