]> git.ipfire.org Git - people/ms/linux.git/commit - fs/namespace.c
fs: simplify check in mount_setattr_commit()
authorChristian Brauner <brauner@kernel.org>
Thu, 3 Feb 2022 13:14:09 +0000 (14:14 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 14 Feb 2022 07:37:40 +0000 (08:37 +0100)
commit03b6abee9ba67c20c4e5253e1a347d8c26edc511
treedda5e0d50bbb9c0c7cbff556c31883932cdb1f2e
parenta26f788b6e7a10d193c4cc6889818e4d625e9461
fs: simplify check in mount_setattr_commit()

In order to determine whether we need to call mnt_unhold_writers() in
mount_setattr_commit() we currently do not just check whether
MNT_WRITE_HOLD is set but also if a read-only mount was requested.

However, checking whether MNT_WRITE_HOLD is set is enough. Setting
MNT_WRITE_HOLD requires lock_mount_hash() to be held and it must be
unset before calling unlock_mount_hash(). This guarantees that if we see
MNT_WRITE_HOLD we know that we were the ones who set it earlier. We
don't need to care about why we set it. Plus, leaving this additional
read-only check in makes the code more confusing because it implies that
MNT_WRITE_HOLD could've been set by another thread when it really can't.
Remove it and update the associated comment.

Link: https://lore.kernel.org/r/20220203131411.3093040-6-brauner@kernel.org
Cc: Seth Forshee <seth.forshee@digitalocean.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-fsdevel@vger.kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/namespace.c