diff options
author | trasz <trasz@FreeBSD.org> | 2014-08-23 11:38:31 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2014-08-23 11:38:31 +0000 |
commit | bd42c0dce6e6802e6e1748fed0cb04d9775373dc (patch) | |
tree | 10c0455909b3b5e670859d5b56adbf991affd438 /sys/fs | |
parent | 5c129e9d8b23fdc4340d4fc5c0b9c9f117a5b122 (diff) | |
download | FreeBSD-src-bd42c0dce6e6802e6e1748fed0cb04d9775373dc.zip FreeBSD-src-bd42c0dce6e6802e6e1748fed0cb04d9775373dc.tar.gz |
Add comment explaining one of the quirks in autofs.
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/autofs/autofs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/fs/autofs/autofs.c b/sys/fs/autofs/autofs.c index d3ea03d..d5a6892 100644 --- a/sys/fs/autofs/autofs.c +++ b/sys/fs/autofs/autofs.c @@ -595,6 +595,14 @@ autofs_open(struct cdev *dev, int flags, int fmt, struct thread *td) { sx_xlock(&sc->sc_lock); + /* + * We must never block automountd(8) and its descendants, and we use + * session ID to determine that: we store session id of the process + * that opened the device, and then compare it with session ids + * of triggering processes. This means running a second automountd(8) + * instance would break the previous one. The check below prevents + * it from happening. + */ if (sc->sc_dev_opened) { sx_xunlock(&sc->sc_lock); return (EBUSY); |