lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <158561511964.23197.716188410829525903.stgit@mickey.themaw.net>
Date:   Tue, 31 Mar 2020 08:54:07 +0800
From:   Ian Kent <raven@...maw.net>
To:     Al Viro <viro@...IV.linux.org.uk>
Cc:     autofs mailing list <autofs@...r.kernel.org>,
        linux-fsdevel <linux-fsdevel@...r.kernel.org>,
        Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: [PATCH v2 0/4] Fix stat() family ping/pong on expiring autofs mounts

This patch series is meant to fix a case were a stat() family system
call is being done at the same time a mount point dentry is being
expired.

When this happens it results in a ping/pong of returning the stat() of
the mounted file system and stat() of the autofs file system.

What needs to be done here is ensure a consistent stat() return based
on the state of the mount at the time.

There are actually a number of cases and, unavoidably, there remains
inconsistency because stat family system calls are not meant to trigger
mounts to avoid mount storms. So they will still return the stat of the
autofs file system if not mounted and the stat of the mounted file
system if they are, including if they are being expired at the time of
the stat() call.

Some of these patches are based on other work that I'm doing as a
result of our recent discussions on the autofs kernel module. For
example the removal do_expire_wait() from autofs_d_manage() and
simplifying the called functions. And the last patch which adds
comments about cases of the autofs_mountpoint_changed() function.
In fact, as you though, there's not much left in autofs_d_manage()
in the endi. 

But I'm not finished with the series yet and I need to get this bug 
fixed.

Changes since v1.
- fix several grammatical mistakes.

---

Ian Kent (4):
      autofs: dont call do_expire_wait() in autofs_d_manage()
      autofs: remove rcu_walk parameter from autofs_expire_wait()
      vfs: check for autofs expiring dentry in follow_automount()
      autofs: add comment about autofs_mountpoint_changed()


 fs/autofs/autofs_i.h  |    2 +-
 fs/autofs/dev-ioctl.c |    2 +-
 fs/autofs/expire.c    |    5 +---
 fs/autofs/root.c      |   58 ++++++++++++++++++++++++++++++++-----------------
 fs/namei.c            |   13 +++++++++--
 5 files changed, 52 insertions(+), 28 deletions(-)

--
Ian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ