<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/shmem.c, branch linux-4.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-09-29T09:55:57Z</updated>
<entry>
<title>mm: shmem.c: Correctly annotate new inodes for lockdep</title>
<updated>2018-09-29T09:55:57Z</updated>
<author>
<name>Joel Fernandes (Google)</name>
</author>
<published>2018-09-20T19:22:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=946f8052f7eeb19aa07bb8249ac97fd752495317'/>
<id>urn:sha1:946f8052f7eeb19aa07bb8249ac97fd752495317</id>
<content type='text'>
commit b45d71fb89ab8adfe727b9d0ee188ed58582a647 upstream.

Directories and inodes don't necessarily need to be in the same lockdep
class.  For ex, hugetlbfs splits them out too to prevent false positives
in lockdep.  Annotate correctly after new inode creation.  If its a
directory inode, it will be put into a different class.

This should fix a lockdep splat reported by syzbot:

&gt; ======================================================
&gt; WARNING: possible circular locking dependency detected
&gt; 4.18.0-rc8-next-20180810+ #36 Not tainted
&gt; ------------------------------------------------------
&gt; syz-executor900/4483 is trying to acquire lock:
&gt; 00000000d2bfc8fe (&amp;sb-&gt;s_type-&gt;i_mutex_key#9){++++}, at: inode_lock
&gt; include/linux/fs.h:765 [inline]
&gt; 00000000d2bfc8fe (&amp;sb-&gt;s_type-&gt;i_mutex_key#9){++++}, at:
&gt; shmem_fallocate+0x18b/0x12e0 mm/shmem.c:2602
&gt;
&gt; but task is already holding lock:
&gt; 0000000025208078 (ashmem_mutex){+.+.}, at: ashmem_shrink_scan+0xb4/0x630
&gt; drivers/staging/android/ashmem.c:448
&gt;
&gt; which lock already depends on the new lock.
&gt;
&gt; -&gt; #2 (ashmem_mutex){+.+.}:
&gt;        __mutex_lock_common kernel/locking/mutex.c:925 [inline]
&gt;        __mutex_lock+0x171/0x1700 kernel/locking/mutex.c:1073
&gt;        mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:1088
&gt;        ashmem_mmap+0x55/0x520 drivers/staging/android/ashmem.c:361
&gt;        call_mmap include/linux/fs.h:1844 [inline]
&gt;        mmap_region+0xf27/0x1c50 mm/mmap.c:1762
&gt;        do_mmap+0xa10/0x1220 mm/mmap.c:1535
&gt;        do_mmap_pgoff include/linux/mm.h:2298 [inline]
&gt;        vm_mmap_pgoff+0x213/0x2c0 mm/util.c:357
&gt;        ksys_mmap_pgoff+0x4da/0x660 mm/mmap.c:1585
&gt;        __do_sys_mmap arch/x86/kernel/sys_x86_64.c:100 [inline]
&gt;        __se_sys_mmap arch/x86/kernel/sys_x86_64.c:91 [inline]
&gt;        __x64_sys_mmap+0xe9/0x1b0 arch/x86/kernel/sys_x86_64.c:91
&gt;        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
&gt;        entry_SYSCALL_64_after_hwframe+0x49/0xbe
&gt;
&gt; -&gt; #1 (&amp;mm-&gt;mmap_sem){++++}:
&gt;        __might_fault+0x155/0x1e0 mm/memory.c:4568
&gt;        _copy_to_user+0x30/0x110 lib/usercopy.c:25
&gt;        copy_to_user include/linux/uaccess.h:155 [inline]
&gt;        filldir+0x1ea/0x3a0 fs/readdir.c:196
&gt;        dir_emit_dot include/linux/fs.h:3464 [inline]
&gt;        dir_emit_dots include/linux/fs.h:3475 [inline]
&gt;        dcache_readdir+0x13a/0x620 fs/libfs.c:193
&gt;        iterate_dir+0x48b/0x5d0 fs/readdir.c:51
&gt;        __do_sys_getdents fs/readdir.c:231 [inline]
&gt;        __se_sys_getdents fs/readdir.c:212 [inline]
&gt;        __x64_sys_getdents+0x29f/0x510 fs/readdir.c:212
&gt;        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
&gt;        entry_SYSCALL_64_after_hwframe+0x49/0xbe
&gt;
&gt; -&gt; #0 (&amp;sb-&gt;s_type-&gt;i_mutex_key#9){++++}:
&gt;        lock_acquire+0x1e4/0x540 kernel/locking/lockdep.c:3924
&gt;        down_write+0x8f/0x130 kernel/locking/rwsem.c:70
&gt;        inode_lock include/linux/fs.h:765 [inline]
&gt;        shmem_fallocate+0x18b/0x12e0 mm/shmem.c:2602
&gt;        ashmem_shrink_scan+0x236/0x630 drivers/staging/android/ashmem.c:455
&gt;        ashmem_ioctl+0x3ae/0x13a0 drivers/staging/android/ashmem.c:797
&gt;        vfs_ioctl fs/ioctl.c:46 [inline]
&gt;        file_ioctl fs/ioctl.c:501 [inline]
&gt;        do_vfs_ioctl+0x1de/0x1720 fs/ioctl.c:685
&gt;        ksys_ioctl+0xa9/0xd0 fs/ioctl.c:702
&gt;        __do_sys_ioctl fs/ioctl.c:709 [inline]
&gt;        __se_sys_ioctl fs/ioctl.c:707 [inline]
&gt;        __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:707
&gt;        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
&gt;        entry_SYSCALL_64_after_hwframe+0x49/0xbe
&gt;
&gt; other info that might help us debug this:
&gt;
&gt; Chain exists of:
&gt;   &amp;sb-&gt;s_type-&gt;i_mutex_key#9 --&gt; &amp;mm-&gt;mmap_sem --&gt; ashmem_mutex
&gt;
&gt;  Possible unsafe locking scenario:
&gt;
&gt;        CPU0                    CPU1
&gt;        ----                    ----
&gt;   lock(ashmem_mutex);
&gt;                                lock(&amp;mm-&gt;mmap_sem);
&gt;                                lock(ashmem_mutex);
&gt;   lock(&amp;sb-&gt;s_type-&gt;i_mutex_key#9);
&gt;
&gt;  *** DEADLOCK ***
&gt;
&gt; 1 lock held by syz-executor900/4483:
&gt;  #0: 0000000025208078 (ashmem_mutex){+.+.}, at:
&gt; ashmem_shrink_scan+0xb4/0x630 drivers/staging/android/ashmem.c:448

Link: http://lkml.kernel.org/r/20180821231835.166639-1-joel@joelfernandes.org
Signed-off-by: Joel Fernandes (Google) &lt;joel@joelfernandes.org&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Reviewed-by: NeilBrown &lt;neilb@suse.com&gt;
Suggested-by: NeilBrown &lt;neilb@suse.com&gt;
Cc: Matthew Wilcox &lt;willy@infradead.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mm: use vma_init() to initialize VMAs on stack and data segments</title>
<updated>2018-07-27T02:38:03Z</updated>
<author>
<name>Kirill A. Shutemov</name>
</author>
<published>2018-07-26T23:37:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c4541e24c55e2847bede93e33d749280edd429a'/>
<id>urn:sha1:2c4541e24c55e2847bede93e33d749280edd429a</id>
<content type='text'>
Make sure to initialize all VMAs properly, not only those which come
from vm_area_cachep.

Link: http://lkml.kernel.org/r/20180724121139.62570-3-kirill.shutemov@linux.intel.com
Signed-off-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Reviewed-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm: use octal not symbolic permissions</title>
<updated>2018-06-14T22:55:25Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2018-06-14T22:27:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0825a6f98689d847ab8058c51b3a55f0abcc6563'/>
<id>urn:sha1:0825a6f98689d847ab8058c51b3a55f0abcc6563</id>
<content type='text'>
mm/*.c files use symbolic and octal styles for permissions.

Using octal and not symbolic permissions is preferred by many as more
readable.

https://lkml.org/lkml/2016/8/2/1945

Prefer the direct use of octal for permissions.

Done using
$ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
and some typing.

Before:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
44
After:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
86

Miscellanea:

o Whitespace neatening around these conversions.

Link: http://lkml.kernel.org/r/2e032ef111eebcd4c5952bae86763b541d373469.1522102887.git.joe@perches.com
Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Acked-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm/shmem.c: zero out unused vma fields in shmem_pseudo_vma_init()</title>
<updated>2018-06-08T00:34:38Z</updated>
<author>
<name>Kirill A. Shutemov</name>
</author>
<published>2018-06-08T00:09:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=daa280753cefa692607190852a98a9c06ae9ec9a'/>
<id>urn:sha1:daa280753cefa692607190852a98a9c06ae9ec9a</id>
<content type='text'>
shmem/tmpfs uses pseudo vma to allocate page with correct NUMA policy.

The pseudo vma doesn't have vm_page_prot set.  We are going to encode
encryption KeyID in vm_page_prot.  Having garbage there causes problems.

Zero out all unused fields in the pseudo vma.

Link: http://lkml.kernel.org/r/20180531135602.20321-1-kirill.shutemov@linux.intel.com
Signed-off-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;
Reviewed-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm/shmem.c: use new return type vm_fault_t</title>
<updated>2018-06-08T00:34:37Z</updated>
<author>
<name>Souptick Joarder</name>
</author>
<published>2018-06-08T00:09:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=20acce679910fb6d30a89fa02586a3b4a134dfeb'/>
<id>urn:sha1:20acce679910fb6d30a89fa02586a3b4a134dfeb</id>
<content type='text'>
Use new return type vm_fault_t for fault handler.  For now, this is just
documenting that the function returns a VM_FAULT value rather than an
errno.  Once all instances are converted, vm_fault_t will become a
distinct type.

See commit 1c8f422059ae ("mm: change return type to vm_fault_t")

vmf_error() is the newly introduce inline function in 4.17-rc6.

Link: http://lkml.kernel.org/r/20180521202410.GA17912@jordon-HP-15-Notebook-PC
Signed-off-by: Souptick Joarder &lt;jrdr.linux@gmail.com&gt;
Reviewed-by: Matthew Wilcox &lt;mawilcox@microsoft.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tmpfs: allow decoding a file handle of an unlinked file</title>
<updated>2018-06-08T00:34:36Z</updated>
<author>
<name>Amir Goldstein</name>
</author>
<published>2018-06-08T00:07:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=12ba780d64f6c96d40de9c4d1468fb732e64be4c'/>
<id>urn:sha1:12ba780d64f6c96d40de9c4d1468fb732e64be4c</id>
<content type='text'>
tmpfs uses the helper d_find_alias() to find a dentry from a decoded
inode, but d_find_alias() skips unhashed dentries, so unlinked files
cannot be decoded from a file handle.

This can be reproduced using xfstests test program open_by_handle:

  $ open_by handle -c /tmp/testdir
  $ open_by_handle -dk /tmp/testdir
  open_by_handle(/tmp/testdir/file000000) returned 116 incorrectly on an unlinked open file!

To fix this, if d_find_alias() can't find a hashed alias, call
d_find_any_alias() to return an unhashed one.

Link: http://lkml.kernel.org/r/CAOQ4uxg+qSLP0KwdW+h1tcPqOCQd+_pGZVXiePQB1TXCMBMctQ@mail.gmail.com
Signed-off-by: Amir Goldstein &lt;amir73il@gmail.com&gt;
Reviewed-by: NeilBrown &lt;neilb@suse.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Jeff Layton &lt;jlayton@poochiereds.net&gt;
Cc: "J. Bruce Fields" &lt;bfields@fieldses.org&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm: shmem: make stat.st_blksize return huge page size if THP is on</title>
<updated>2018-06-08T00:34:35Z</updated>
<author>
<name>Yang Shi</name>
</author>
<published>2018-06-08T00:06:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=89fdcd262fd40712da65e922558872a12b203332'/>
<id>urn:sha1:89fdcd262fd40712da65e922558872a12b203332</id>
<content type='text'>
Since tmpfs THP was supported in 4.8, hugetlbfs is not the only
filesystem with huge page support anymore.  tmpfs can use huge page via
THP when mounting by "huge=" mount option.

When applications use huge page on hugetlbfs, it just need check the
filesystem magic number, but it is not enough for tmpfs.  Make
stat.st_blksize return huge page size if it is mounted by appropriate
"huge=" option to give applications a hint to optimize the behavior with
THP.

Some applications may not do wisely with THP.  For example, QEMU may
mmap file on non huge page aligned hint address with MAP_FIXED, which
results in no pages are PMD mapped even though THP is used.  Some
applications may mmap file with non huge page aligned offset.  Both
behaviors make THP pointless.

statfs.f_bsize still returns 4KB for tmpfs since THP could be split, and
it also may fallback to 4KB page silently if there is not enough huge
page.  Furthermore, different f_bsize makes max_blocks and free_blocks
calculation harder but without too much benefit.  Returning huge page
size via stat.st_blksize sounds good enough.

Since PUD size huge page for THP has not been supported, now it just
returns HPAGE_PMD_SIZE.

Hugh said:

: Sorry, I have no enthusiasm for this patch; but do I feel strongly
: enough to override you and everyone else to NAK it?  No, I don't feel
: that strongly, maybe st_blksize isn't worth arguing over.
:
: We did look at struct stat when designing huge tmpfs, to see if there
: were any fields that should be adjusted for it; but concluded none.
: Yes, it would sometimes be nice to have a quickly accessible indicator
: for when tmpfs has been mounted huge (scanning /proc/mounts for options
: can be tiresome, agreed); but since tmpfs tries to supply huge (or not)
: pages transparently, no difference seemed right.
:
: So, because st_blksize is a not very useful field of struct stat, with
: "size" in the name, we're going to put HPAGE_PMD_SIZE in there instead
: of PAGE_SIZE, if the tmpfs was mounted with one of the huge "huge"
: options (force or always, okay; within_size or advise, not so much).
: Though HPAGE_PMD_SIZE is no more its "preferred I/O size" or "blocksize
: for file system I/O" than PAGE_SIZE was.
:
: Which we can expect to speed up some applications and disadvantage
: others, depending on how they interpret st_blksize: just like if we
: changed it in the same way on non-huge tmpfs.  (Did I actually try
: changing st_blksize early on, and find it broke something?  If so, I've
: now forgotten what, and a search through commit messages didn't find
: it; but I guess we'll find out soon enough.)
:
: If there were an mstat() syscall, returning a field "preferred
: alignment", then we could certainly agree to put HPAGE_PMD_SIZE in
: there; but in stat()'s st_blksize?  And what happens when (in future)
: mm maps this or that hard-disk filesystem's blocks with a pmd mapping -
: should that filesystem then advertise a bigger st_blksize, despite the
: same disk layout as before?  What happens with DAX?
:
: And this change is not going to help the QEMU suboptimality that
: brought you here (or does QEMU align mmaps according to st_blksize?).
: QEMU ought to work well with kernels without this change, and kernels
: with this change; and I hope it can easily deal with both by avoiding
: that use of MAP_FIXED which prevented the kernel's intended alignment.

[akpm@linux-foundation.org: remove unneeded `else']
Link: http://lkml.kernel.org/r/1524665633-83806-1-git-send-email-yang.shi@linux.alibaba.com
Signed-off-by: Yang Shi &lt;yang.shi@linux.alibaba.com&gt;
Suggested-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Michal Hocko &lt;mhocko@kernel.org&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm: restructure memfd code</title>
<updated>2018-06-08T00:34:35Z</updated>
<author>
<name>Mike Kravetz</name>
</author>
<published>2018-06-08T00:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d752600a8c373382264392f5b573b2fc9c0e8ea'/>
<id>urn:sha1:5d752600a8c373382264392f5b573b2fc9c0e8ea</id>
<content type='text'>
With the addition of memfd hugetlbfs support, we now have the situation
where memfd depends on TMPFS -or- HUGETLBFS.  Previously, memfd was only
supported on tmpfs, so it made sense that the code resided in shmem.c.
In the current code, memfd is only functional if TMPFS is defined.  If
HUGETLFS is defined and TMPFS is not defined, then memfd functionality
will not be available for hugetlbfs.  This does not cause BUGs, just a
lack of potentially desired functionality.

Code is restructured in the following way:
- include/linux/memfd.h is a new file containing memfd specific
  definitions previously contained in shmem_fs.h.
- mm/memfd.c is a new file containing memfd specific code previously
  contained in shmem.c.
- memfd specific code is removed from shmem_fs.h and shmem.c.
- A new config option MEMFD_CREATE is added that is defined if TMPFS
  or HUGETLBFS is defined.

No functional changes are made to the code: restructuring only.

Link: http://lkml.kernel.org/r/20180415182119.4517-4-mike.kravetz@oracle.com
Signed-off-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;
Reviewed-by: Khalid Aziz &lt;khalid.aziz@oracle.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Marc-Andr Lureau &lt;marcandre.lureau@gmail.com&gt;
Cc: Matthew Wilcox &lt;willy@infradead.org&gt;
Cc: Michal Hocko &lt;mhocko@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm/shmem: update file sealing comments and file checking</title>
<updated>2018-06-08T00:34:35Z</updated>
<author>
<name>Mike Kravetz</name>
</author>
<published>2018-06-08T00:05:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c49fcfcda8b5b06529103664f0291f433f5e6d24'/>
<id>urn:sha1:c49fcfcda8b5b06529103664f0291f433f5e6d24</id>
<content type='text'>
In preparation for memfd code restructure, update comments, definitions
and function names dealing with file sealing to indicate that tmpfs and
hugetlbfs are the supported filesystems.  Also, change file pointer
checks in memfd_file_seals_ptr to use defined interfaces instead of
directly referencing file_operation structs.

Link: http://lkml.kernel.org/r/20180415182119.4517-3-mike.kravetz@oracle.com
Signed-off-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;
Reviewed-by: Khalid Aziz &lt;khalid.aziz@oracle.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Marc-Andr Lureau &lt;marcandre.lureau@gmail.com&gt;
Cc: Matthew Wilcox &lt;willy@infradead.org&gt;
Cc: Michal Hocko &lt;mhocko@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm/shmem: add __rcu annotations and properly deref radix entry</title>
<updated>2018-06-08T00:34:34Z</updated>
<author>
<name>Mike Kravetz</name>
</author>
<published>2018-06-08T00:05:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b9c98f3082b4e8a24ef5e6bb21ed0558b54349a'/>
<id>urn:sha1:5b9c98f3082b4e8a24ef5e6bb21ed0558b54349a</id>
<content type='text'>
Patch series "restructure memfd code", v4.

This patch (of 3):

In preparation for memfd code restucture, clean up sparse warnings.
Most changes required adding __rcu annotations.  The routine
find_swap_entry was modified to properly deference radix tree entries.

Link: http://lkml.kernel.org/r/20180415182119.4517-2-mike.kravetz@oracle.com
Signed-off-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;
Signed-off-by: Matthew Wilcox &lt;willy@infradead.org&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: Michal Hocko &lt;mhocko@kernel.org&gt;
Cc: Marc-Andr Lureau &lt;marcandre.lureau@gmail.com&gt;
Cc: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Cc: Khalid Aziz &lt;khalid.aziz@oracle.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
