{"push_id":538633129,"size":1000,"distinct_size":2,"ref":"refs/heads/latest","head":"659af29088a6c75f5c74c50f384460e7d90c3d79","before":"939d65cccb65bb2213942e8f7923d5e446261b09","commits":[{"sha":"7f899399541060a2888cd99ec9f15abd643b4c54","author":{"email":"729782c736785f3c610b2ccb0320baaeca32a38f@gmail.com","name":"Sanchayan Maity"},"message":"drivers/rtc/rtc-snvs: add clock support\n\nAdd clock enable and disable support for the SNVS peripheral, which is\nrequired for using the RTC within the SNVS block.\n\nThe clock is not strictly enforced, as this would break the i.MX devices.\nThe clocking for the i.MX devices seems to be enabled elsewhere and\nenabling RTC SNVS for Vybrid results in a crash.  This patch adds the\nclock support but also makes it optional so Vybrid platform can use the\nclock if defined while making sure not to break i.MX.\n\nSigned-off-by: Sanchayan Maity <maitysanchayan@gmail.com>\nCc: Shawn Guo <shawn.guo@linaro.org>\nAcked-by: Stefan Agner <stefan@agner.ch>\nAcked-by: Alessandro Zummo <a.zummo@towertech.it>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/7f899399541060a2888cd99ec9f15abd643b4c54"},{"sha":"7654e9d4fd8f160b3736b297c4b35684988c8c62","author":{"email":"729782c736785f3c610b2ccb0320baaeca32a38f@gmail.com","name":"Sanchayan Maity"},"message":"drivers/rtc/rtc-snvs: fix suspend/resume\n\nThe alarm interrupt handler also reads registers which are part of SNVS\nand need clocks enabled.  However, the resume function is called after\nIRQ's have been enabled, hence this leads to a abort:\n\n    Unhandled fault: external abort on non-linefetch (0x1008) at 0x908c604c\n    Internal error: : 1008 [#1] ARM\n    Modules linked in:\n    CPU: 0 PID: 421 Comm: sh Not tainted 3.18.0-rc5-00135-g0689c67-dirty #1592\n    task: 8e03e800 ti: 8cad8000 task.ti: 8cad8000\n    PC is at snvs_rtc_irq_handler+0x14/0x74\n    LR is at handle_irq_event_percpu+0x3c/0x144\n\nFix this by using the .{suspend/resume}_noirq callbacks instead of\n.{suspend/resume} .\n\nSigned-off-by: Sanchayan Maity <maitysanchayan@gmail.com>\nCc: Shawn Guo <shawn.guo@linaro.org>\nCc: Stefan Agner <stefan@agner.ch>\nCc: Alessandro Zummo <a.zummo@towertech.it>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/7654e9d4fd8f160b3736b297c4b35684988c8c62"},{"sha":"c594d6787919692001ac7c16f08646a8ec36180a","author":{"email":"8f3df7547938bf466547d5e4573831d5224028fc@linaro.org","name":"Xunlei Pang"},"message":"rtc/ab8500: set uie_unsupported flag\n\nCurrently, ab8500 doesn't set uie_unsupported of rtc_device, while it\ndoesn't support UIE, see ab8500_rtc_set_alarm().\n\nThus, when going through rtc_update_irq_enable()->rtc_timer_enqueue(),\nthere's a chance it has an alarm timer1 queued before which is going to\nfired, so this update timer2 will be queued because it isn't the leftmost\none, which means rtc_timer_enqueue() will return 0.\n\nThis will result in two problems:\n1) UIE EMUL will not be used.\n2) When the alarm timer1 is fired, in rtc_timer_do_work() timer2 will\n   fail to set the alarm time, so this rtc will disfunctional due to\n   timer2 with the earliest expires in the timerqueue.\n\nSo, rtc drivers must set this flag if they don't support UIE.\n\nSigned-off-by: Xunlei Pang <pang.xunlei@linaro.org>\nCc: Alessandro Zummo <a.zummo@towertech.it>\nCc: John Stultz <john.stultz@linaro.org>\nCc: Arnd Bergmann <arnd.bergmann@linaro.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/c594d6787919692001ac7c16f08646a8ec36180a"},{"sha":"6528b889955d36caa06712789746cfbd0ecf3898","author":{"email":"8f3df7547938bf466547d5e4573831d5224028fc@linaro.org","name":"Xunlei Pang"},"message":"rtc: refine rtc_timer_do_work() to consider other set alarm failures\n\nrtc_timer_do_work() only judges -ETIME failure of__rtc_set_alarm(), but\ndoesn't handle other failures like -EIO, -EBUSY, etc.\n\nIf there is a failure other than -ETIME, the next rtc_timer will stay in\nthe timerqueue.  Then later rtc_timers will be enqueued directly because\nthey have a later expires time, so the alarm irq will never be programmed.\n\nWhen such failures happen, this patch will retry __rtc_set_alarm(), if\nstill can't program the alarm time, it will remove current rtc_timer from\ntimerqueue and fetch next one, thus preventing it from affecting other rtc\ntimers.\n\nSigned-off-by: Xunlei Pang <pang.xunlei@linaro.org>\nCc: Alessandro Zummo <a.zummo@towertech.it>\nCc: John Stultz <john.stultz@linaro.org>\nCc: Arnd Bergmann <arnd.bergmann@linaro.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/6528b889955d36caa06712789746cfbd0ecf3898"},{"sha":"75dc857c46996e336cb2f9cf0ed1e5508fb241a7","author":{"email":"307809eb270e82590481d18cc726355b9a856b2d@gmx.net","name":"Andreas Rohner"},"message":"nilfs2: avoid duplicate segment construction for fsync()\n\nThis patch removes filemap_write_and_wait_range() from nilfs_sync_file(),\nbecause it triggers a data segment construction by calling\nnilfs_writepages() with WB_SYNC_ALL.  A data segment construction does not\nremove the inode from the i_dirty list and it does not clear the\nNILFS_I_DIRTY flag.  Therefore nilfs_inode_dirty() still returns true,\nwhich leads to an unnecessary duplicate segment construction in\nnilfs_sync_file().\n\nA call to filemap_write_and_wait_range() is not needed, because NILFS2\ndoes not rely on the generic writeback mechanisms.  Instead it implements\nits own mechanism to collect all dirty pages and write them into segments.\n It is more efficient to initiate the segment construction directly in\nnilfs_sync_file() without the detour over filemap_write_and_wait_range().\n\nAdditionally the lock of i_mutex is not needed, because all code blocks\nthat are protected by i_mutex are also protected by a NILFS transaction:\n\n  Function                i_mutex     nilfs_transaction\n  ------------------------------------------------------\n  nilfs_ioctl_setflags:   yes         yes\n  nilfs_fiemap:           yes         no\n  nilfs_write_begin:      yes         yes\n  nilfs_write_end:        yes         yes\n  nilfs_lookup:           yes         no\n  nilfs_create:           yes         yes\n  nilfs_link:             yes         yes\n  nilfs_mknod:            yes         yes\n  nilfs_symlink:          yes         yes\n  nilfs_mkdir:            yes         yes\n  nilfs_unlink:           yes         yes\n  nilfs_rmdir:            yes         yes\n  nilfs_rename:           yes         yes\n  nilfs_setattr:          yes         yes\n\nFor nilfs_lookup() i_mutex is held for the parent directory, to protect it\nfrom modification.  The segment construction does not modify directory\ninodes, so no lock is needed.\n\nnilfs_fiemap() reads the block layout on the disk, by using\nnilfs_bmap_lookup_contig(). This is already protected by bmap->b_sem.\n\nSigned-off-by: Andreas Rohner <andreas.rohner@gmx.net>\nSigned-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/75dc857c46996e336cb2f9cf0ed1e5508fb241a7"},{"sha":"72b9918ea4d7f2d8362a2defdb93e5fd25a86308","author":{"email":"da4b4ed1d87736710c484a0ca84b2abc9f4ef095@users.sourceforge.net","name":"Markus Elfring"},"message":"nilfs2: deletion of an unnecessary check before the function call \"iput\"\n\nThe iput() function tests whether its argument is NULL and then returns\nimmediately.  Thus the test around the call is not needed.\n\nThis issue was detected by using the Coccinelle software.\n\nSigned-off-by: Markus Elfring <elfring@users.sourceforge.net>\nSigned-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/72b9918ea4d7f2d8362a2defdb93e5fd25a86308"},{"sha":"705304a863cc41585508c0f476f6d3ec28cf7e00","author":{"email":"f414f2bdd839fdc054376382fa67e9bc2fbf206f@lab.ntt.co.jp","name":"Ryusuke Konishi"},"message":"nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races\n\nSame story as in commit 41080b5a2401 (\"nfsd race fixes: ext2\") (similar\next2 fix) except that nilfs2 needs to use insert_inode_locked4() instead\nof insert_inode_locked() and a bug of a check for dead inodes needs to\nbe fixed.\n\nIf nilfs_iget() is called from nfsd after nilfs_new_inode() calls\ninsert_inode_locked4(), nilfs_iget() will wait for unlock_new_inode() at\nthe end of nilfs_mkdir()/nilfs_create()/etc to unlock the inode.\n\nIf nilfs_iget() is called before nilfs_new_inode() calls\ninsert_inode_locked4(), it will create an in-core inode and read its\ndata from the on-disk inode.  But, nilfs_iget() will find i_nlink equals\nzero and fail at nilfs_read_inode_common(), which will lead it to call\niget_failed() and cleanly fail.\n\nHowever, this sanity check doesn't work as expected for reused on-disk\ninodes because they leave a non-zero value in i_mode field and it\nhinders the test of i_nlink.  This patch also fixes the issue by\nremoving the test on i_mode that nilfs2 doesn't need.\n\nSigned-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/705304a863cc41585508c0f476f6d3ec28cf7e00"},{"sha":"ddbc22e27e672b6b180757ea1d7f8481dbb88128","author":{"email":"ba324ca7b1c77fc20bb970d5aff6eea9377918a5@rasmusvillemoes.dk","name":"Rasmus Villemoes"},"message":"fs/hfs/catalog.c: fix comparison bug in hfs_cat_keycmp\n\nRelying on the sign (after casting to int) of the difference of two\nquantities for comparison is usually wrong.  For example, should a-b\nturn out to be 2^31, the return value of cmp(a,b) is -2^31; but that\nwould also be the return value from cmp(b, a).  So a compares less than\nb and b compares less than a.  One can also easily find three values\na,b,c such that a compares less than b, b compares less than c, but a\ndoes not compare less than c.\n\nSigned-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>\nReviewed-by: Vyacheslav Dubeyko <slava@dubeyko.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/ddbc22e27e672b6b180757ea1d7f8481dbb88128"},{"sha":"7117bc8888aff73fb081956afa501edcc85a1552","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"usermodehelper: don't use CLONE_VFORK for ____call_usermodehelper()\n\nAfter \"kernel/kmod: fix use-after-free of the sub_infostructure\"\nCLONE_VFORK in __call_usermodehelper() buys nothing, we rely on on\numh_complete() in ____call_usermodehelper() anyway.\n\nRemove it.  This also eliminates the unnecessary sleep/wakeup in the\nlikely case, and this allows the next change.\n\nWhile at it, kill the \"int wait\" locals in ____call_usermodehelper() and\n__call_usermodehelper(), they can safely use sub_info->wait.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Martin Schwidefsky <schwidefsky@de.ibm.com>\nCc: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/7117bc8888aff73fb081956afa501edcc85a1552"},{"sha":"7f6def9f9b6ebba42fcdc12cfb3092f2cf44b3fe","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"usermodehelper: kill the kmod_thread_locker logic\n\nNow that we do not call kernel_thread(CLONE_VFORK) from the worker\nthread we can not deadlock if do_execve() in turn triggers another\ncall_usermodehelper(), we can remove the kmod_thread_locker code.\n\nNote: we should probably kill khelper_wq and simply use one of the\nglobal workqueues, say, system_unbound_wq, this special wq for umh buys\nnothing nowadays.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Martin Schwidefsky <schwidefsky@de.ibm.com>\nCc: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/7f6def9f9b6ebba42fcdc12cfb3092f2cf44b3fe"},{"sha":"f6507f83bccd4a5f7dc7091079bf58128dc56d66","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: wait: cleanup the ptrace_reparented() checks\n\nNow that EXIT_DEAD is the terminal state we can kill \"int traced\"\nvariable and check \"state == EXIT_DEAD\" instead to cleanup the code.  In\nparticular, this way it is clear that the check obviously doesn't need\ntasklist_lock.\n\nAlso fix the type of \"unsigned long state\", \"long\" was always wrong\nalthough this doesn't matter because cmpxchg/xchg uses typeof(*ptr).\n\n[akpm@linux-foundation.org: don't make me google the C Operator Precedence table]\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/f6507f83bccd4a5f7dc7091079bf58128dc56d66"},{"sha":"f953ccd00615140b5e722ffe2b920da22dfb4db9","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: wait: don't use zombie->real_parent\n\n1. wait_task_zombie() uses p->real_parent to get psig/siglock. This is\n   correct but needs tasklist_lock, ->real_parent can exit.\n\n   We can use \"current\" instead. This is our natural child, its parent\n   must be our sub-thread.\n\n2. Read psig/sig outside of ->siglock, ->signal is no longer protected\n   by this lock.\n\n3. Fix the outdated comments about tasklist_lock. We can not race with\n   __exit_signal(), the whole thread group is dead, nobody but us can\n   call it.\n\n   Also clarify the usage of ->stats_lock and ->siglock.\n\nNote: thread_group_cputime_adjusted() is sub-optimal in this case, we\nprobably want to export cputime_adjust() to avoid thread_group_cputime().\nThe comment says \"all threads\" but there are no other threads.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/f953ccd00615140b5e722ffe2b920da22dfb4db9"},{"sha":"986094dfe161b4346831547136d4e5ed7f94310e","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: wait: drop tasklist_lock before psig->c* accounting\n\nwait_task_zombie() no longer needs tasklist_lock to accumulate the\npsig->c* counters, we can drop it right after cmpxchg(exit_state).\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/986094dfe161b4346831547136d4e5ed7f94310e"},{"sha":"26e75b5c3d2226cb995fde064744aa93f63849c4","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: release_task: fix the comment about group leader accounting\n\nContrary to what the comment in __exit_signal() says we do account the\ngroup leader. Fix this and explain why.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/26e75b5c3d2226cb995fde064744aa93f63849c4"},{"sha":"c35a7f18a0b237261dad57c9abd3adfa73f315e1","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: proc: don't try to flush /proc/tgid/task/tgid\n\nproc_flush_task_mnt() always tries to flush task/pid, but this is\npointless if we reap the leader. d_invalidate() is recursive, and\nif nothing else the next d_hash_and_lookup(tgid) should fail anyway.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/c35a7f18a0b237261dad57c9abd3adfa73f315e1"},{"sha":"8a1296aea4a319b33c3367ff3805835e949a229f","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: reparent: fix the dead-parent PR_SET_CHILD_SUBREAPER reparenting\n\nThe ->has_child_subreaper code in find_new_reaper() finds alive \"thread\"\nbut returns another \"reaper\" thread which can be dead.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Kay Sievers <kay@vrfy.org>\nCc: Lennart Poettering <lennart@poettering.net>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/8a1296aea4a319b33c3367ff3805835e949a229f"},{"sha":"7d24e2df52f596a1ea922e4f84a61f2fb24fbb70","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: reparent: fix the cross-namespace PR_SET_CHILD_SUBREAPER reparenting\n\nfind_new_reaper() assumes that \"has_child_subreaper\" logic is safe as\nlong as we are not the exiting ->child_reaper and this is doubly wrong:\n\n1. In fact it is safe if \"pid_ns->child_reaper == father\"; there must\n   be no children after zap_pid_ns_processes() returns, so it doesn't\n   matter what we return in this case and even pid_ns->child_reaper is\n   wrong otherwise: we can't reparent to ->child_reaper == current.\n\n   This is not a bug, but this is confusing.\n\n2. It is not safe if we are not pid_ns->child_reaper but from the same\n   thread group. We drop tasklist_lock before zap_pid_ns_processes(),\n   so another thread can lock it and choose the new reaper from the\n   upper namespace if has_child_subreaper == T, and this is obviously\n   wrong.\n\n   This is not that bad, zap_pid_ns_processes() won't return until the\n   the new reaper reaps all zombies, but this should be fixed anyway.\n\nWe could change for_each_thread() loop to use ->exit_state instead of\nPF_EXITING which we had to use until 8aac62706ada, or we could change\ncopy_signal() to check CLONE_NEWPID before setting has_child_subreaper,\nbut lets change this code so that it is clear we can't look outside of\nour namespace, otherwise same_thread_group(reaper, child_reaper) check\nwill look wrong and confusing anyway.\n\nWe can simply start from \"father\" and fix the problem. We can't wrongly\nreturn a thread from the same thread group if ->is_child_subreaper == T,\nwe know that all threads have PF_EXITING set.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Kay Sievers <kay@vrfy.org>\nCc: Lennart Poettering <lennart@poettering.net>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/7d24e2df52f596a1ea922e4f84a61f2fb24fbb70"},{"sha":"3750ef979cfa1296630aa9f23e265c1bd721498a","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: reparent: s/while_each_thread/for_each_thread/ in find_new_reaper()\n\nChange find_new_reaper() to use for_each_thread() instead of deprecated\nwhile_each_thread().  We do not bother to check \"thread != father\" in the\n1st loop, we can rely on PF_EXITING check.\n\nNote: this means the minor behavioural change: for_each_thread() starts\nfrom the group leader.  But this should be fine, nobody should make any\nassumption about do_wait(__WNOTHREAD) when it comes to reparented tasks.\nAnd this can avoid the pointless reparenting to a short-living thread\nWhile zombie leaders are not that common.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Kay Sievers <kay@vrfy.org>\nCc: Lennart Poettering <lennart@poettering.net>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/3750ef979cfa1296630aa9f23e265c1bd721498a"},{"sha":"175aed3f8d38b87d3287bb765c794205f2b511de","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: reparent: document the ->has_child_subreaper checks\n\nSwap the \"init_task\" and same_thread_group() checks.  This way it is more\nsimple to document these checks and we can remove the link to the previous\ndiscussion on lkml.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Kay Sievers <kay@vrfy.org>\nCc: Lennart Poettering <lennart@poettering.net>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/175aed3f8d38b87d3287bb765c794205f2b511de"},{"sha":"1109909c7df08f55ff9104276bb9db1ee2e6e53d","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"exit: reparent: introduce find_child_reaper()\n\nfind_new_reaper() does 2 completely different things.  Not only it finds a\nreaper, it also updates pid_ns->child_reaper or kills the whole namespace\nif the caller is ->child_reaper.\n\nNow that has_child_subreaper logic doesn't depend on child_reaper check we\ncan move that pid_ns code into a separate helper.  IMHO this makes the\ncode more clean, and this allows the next changes.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: \"Eric W. Biederman\" <ebiederm@xmission.com>\nCc: Kay Sievers <kay@vrfy.org>\nCc: Lennart Poettering <lennart@poettering.net>\nCc: Sterling Alexander <stalexan@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":false,"url":"https://api.github.com/repos/bas-t/media_tree/commits/1109909c7df08f55ff9104276bb9db1ee2e6e53d"}]}