summaryrefslogtreecommitdiffstats
path: root/fs/autofs4/autofs_i.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-01-10 22:35:38 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2012-01-11 00:20:12 -0500
commitd668dc56631da067540b2494d2a1f29ff7b5f15a (patch)
tree303ad17208838e8b9b1752f9427d55c84555f0f0 /fs/autofs4/autofs_i.h
parent8753333266be67ff3a984ac1f6566d31c260bee4 (diff)
downloadlinux-d668dc56631da067540b2494d2a1f29ff7b5f15a.tar.gz
linux-d668dc56631da067540b2494d2a1f29ff7b5f15a.tar.bz2
linux-d668dc56631da067540b2494d2a1f29ff7b5f15a.zip
autofs4: deal with autofs4_write/autofs4_write races
Just serialize the actual writing of packets into pipe on a new mutex, independent from everything else in the locking hierarchy. As soon as something has started feeding a piece of packet into the pipe to daemon, we *want* everything else about to try the same to wait until we are done. Acked-by: Ian Kent <raven@themaw.net> 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.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index 5869d4e974a9..d8d8e7ba6a1e 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -116,6 +116,7 @@ struct autofs_sb_info {
int needs_reghost;
struct super_block *sb;
struct mutex wq_mutex;
+ struct mutex pipe_mutex;
spinlock_t fs_lock;
struct autofs_wait_queue *queues; /* Wait queue pointer */
spinlock_t lookup_lock;