]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commit
smack: use GFP_NOFS while holding inode_smack::smk_lock
authorEric Biggers <ebiggers@google.com>
Thu, 22 Aug 2019 05:54:41 +0000 (22:54 -0700)
committerConnor Kuehl <connor.kuehl@canonical.com>
Mon, 21 Oct 2019 18:30:24 +0000 (11:30 -0700)
commitb03faefdaa191dcb4b6edea558991fd3b5a1094a
treec2a134ed9670748593149157d02d6c717ef45db7
parentcb3033066e51b11cb1c0b34238d84c3e2d19b4f8
smack: use GFP_NOFS while holding inode_smack::smk_lock

BugLink: https://bugs.launchpad.net/bugs/1848817
commit e5bfad3d7acc5702f32aafeb388362994f4d7bd0 upstream.

inode_smack::smk_lock is taken during smack_d_instantiate(), which is
called during a filesystem transaction when creating a file on ext4.
Therefore to avoid a deadlock, all code that takes this lock must use
GFP_NOFS, to prevent memory reclaim from waiting for the filesystem
transaction to complete.

Reported-by: syzbot+0eefc1e06a77d327a056@syzkaller.appspotmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
security/smack/smack_access.c
security/smack/smack_lsm.c