CINXE.COM
cbcf01128d0a92e131bd09f1688fe032480b65ca - kernel/common - Git at Google
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>cbcf01128d0a92e131bd09f1688fe032480b65ca - kernel/common - Git at Google</title><link rel="stylesheet" type="text/css" href="/+static/base.css"><!-- default customHeadTagPart --></head><body class="Site"><header class="Site-header"><div class="Header"><a class="Header-image" href="/"><img src="//www.gstatic.com/images/branding/lockups/2x/lockup_git_color_108x24dp.png" width="108" height="24" alt="Google Git"></a><div class="Header-menu"> <a class="Header-menuItem" href="https://accounts.google.com/AccountChooser?faa=1&service=gerritcodereview&continue=https://android.googlesource.com/login/kernel/common/%2B/cbcf01128d0a92e131bd09f1688fe032480b65ca">Sign in</a> </div></div></header><div class="Site-content"><div class="Container "><div class="Breadcrumbs"><a class="Breadcrumbs-crumb" href="/?format=HTML">android</a> / <a class="Breadcrumbs-crumb" href="/kernel/">kernel</a> / <a class="Breadcrumbs-crumb" href="/kernel/common/">common</a> / <span class="Breadcrumbs-crumb">cbcf01128d0a92e131bd09f1688fe032480b65ca</span></div><div class="u-monospace Metadata"><table><tr><th class="Metadata-title">commit</th><td>cbcf01128d0a92e131bd09f1688fe032480b65ca</td><td><span>[<a href="/kernel/common/+log/cbcf01128d0a92e131bd09f1688fe032480b65ca">log</a>]</span> <span>[<a href="/kernel/common/+archive/cbcf01128d0a92e131bd09f1688fe032480b65ca.tar.gz">tgz</a>]</span></td></tr><tr><th class="Metadata-title">author</th><td>Miklos Szeredi <mszeredi@redhat.com></td><td>Wed Jul 28 14:47:20 2021 +0200</td></tr><tr><th class="Metadata-title">committer</th><td>Linus Torvalds <torvalds@linux-foundation.org></td><td>Wed Jul 28 10:18:00 2021 -0700</td></tr><tr><th class="Metadata-title">tree</th><td><a href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/">9671f98e796537f07cac82a38527183d11a6f0c0</a></td></tr><tr><th class="Metadata-title">parent</th><td><a href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca%5E">7d549995d4e0d99b68e8a7793a0d23da6fc40fe8</a> <span>[<a href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca%5E%21/">diff</a>]</span></td></tr></table></div><pre class="u-pre u-monospace MetadataMessage">af_unix: fix garbage collect vs MSG_PEEK unix_gc() assumes that candidate sockets can never gain an external reference (i.e. be installed into an fd) while the unix_gc_lock is held. Except for MSG_PEEK this is guaranteed by modifying inflight count under the unix_gc_lock. MSG_PEEK does not touch any variable protected by unix_gc_lock (file count is not), yet it needs to be serialized with garbage collection. Do this by locking/unlocking unix_gc_lock: 1) increment file count 2) lock/unlock barrier to make sure incremented file count is visible to garbage collection 3) install file into fd This is a lock barrier (unlike smp_mb()) that ensures that garbage collection is run completely before or completely after the barrier. Cc: <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> </pre><ul class="DiffTree"><li><a href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/net/unix/af_unix.c">net/unix/af_unix.c</a><span class="DiffTree-action DiffTree-action--modify">[<a href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca%5E%21/#F0">diff</a>]</span></li></ul><div class="DiffSummary">1 file changed</div><div class="TreeDetail"><div class="u-sha1 u-monospace TreeDetail-sha1">tree: 9671f98e796537f07cac82a38527183d11a6f0c0</div><ol class="FileList"><li class="FileList-item FileList-item--gitTree" title="Tree - arch/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/arch/">arch/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - block/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/block/">block/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - certs/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/certs/">certs/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - crypto/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/crypto/">crypto/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - Documentation/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/Documentation/">Documentation/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - drivers/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/drivers/">drivers/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - fs/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/fs/">fs/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - include/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/include/">include/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - init/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/init/">init/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - ipc/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/ipc/">ipc/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - kernel/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/kernel/">kernel/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - lib/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/lib/">lib/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - LICENSES/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/LICENSES/">LICENSES/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - mm/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/mm/">mm/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - net/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/net/">net/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - samples/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/samples/">samples/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - scripts/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/scripts/">scripts/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - security/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/security/">security/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - sound/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/sound/">sound/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - tools/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/tools/">tools/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - usr/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/usr/">usr/</a></li><li class="FileList-item FileList-item--gitTree" title="Tree - virt/"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/virt/">virt/</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .clang-format"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.clang-format">.clang-format</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .cocciconfig"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.cocciconfig">.cocciconfig</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .get_maintainer.ignore"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.get_maintainer.ignore">.get_maintainer.ignore</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .gitattributes"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.gitattributes">.gitattributes</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .gitignore"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.gitignore">.gitignore</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - .mailmap"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/.mailmap">.mailmap</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - COPYING"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/COPYING">COPYING</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - CREDITS"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/CREDITS">CREDITS</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - Kbuild"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/Kbuild">Kbuild</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - Kconfig"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/Kconfig">Kconfig</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - MAINTAINERS"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/MAINTAINERS">MAINTAINERS</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - Makefile"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/Makefile">Makefile</a></li><li class="FileList-item FileList-item--regularFile" title="Regular file - README"><a class="FileList-itemLink" href="/kernel/common/+/cbcf01128d0a92e131bd09f1688fe032480b65ca/README">README</a></li></ol></div></div> <!-- Container --></div> <!-- Site-content --><footer class="Site-footer"><div class="Footer"><span class="Footer-poweredBy">Powered by <a href="https://gerrit.googlesource.com/gitiles/">Gitiles</a>| <a href="https://policies.google.com/privacy">Privacy</a>| <a href="https://policies.google.com/terms">Terms</a></span><span class="Footer-formats"><a class="u-monospace Footer-formatsItem" href="?format=TEXT">txt</a> <a class="u-monospace Footer-formatsItem" href="?format=JSON">json</a></span></div></footer></body></html>