1. 11 11月, 2015 1 次提交
  2. 10 11月, 2015 1 次提交
    • A
      remove abs64() · 79211c8e
      Andrew Morton 提交于
      Switch everything to the new and more capable implementation of abs().
      Mainly to give the new abs() a bit of a workout.
      
      Cc: Michal Nazarewicz <mina86@mina86.com>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      79211c8e
  3. 07 11月, 2015 17 次提交
    • R
      dma-debug: check nents in dma_sync_sg* · 7f830642
      Robin Murphy 提交于
      Like dma_unmap_sg, dma_sync_sg* should be called with the original number
      of entries passed to dma_map_sg, so do the same check in the sync path as
      we do in the unmap path.
      Signed-off-by: NRobin Murphy <robin.murphy@arm.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Sumit Semwal <sumit.semwal@linaro.org>
      Cc: Sakari Ailus <sakari.ailus@iki.fi>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7f830642
    • A
      lib/hexdump.c: truncate output in case of overflow · 9f029f54
      Andy Shevchenko 提交于
      There is a classical off-by-one error in case when we try to place, for
      example, 1+1 bytes as hex in the buffer of size 6.  The expected result is
      to get an output truncated, but in the reality we get 6 bytes filed
      followed by terminating NUL.
      
      Change the logic how we fill the output in case of byte dumping into
      limited space.  This will follow the snprintf() behaviour by truncating
      output even on half bytes.
      
      Fixes: 114fc1af (hexdump: make it return number of bytes placed in buffer)
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Reported-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      Tested-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9f029f54
    • O
      lib/is_single_threaded.c: change current_is_single_threaded() to use for_each_thread() · 90224350
      Oleg Nesterov 提交于
      Change current_is_single_threaded() to use for_each_thread() rather than
      deprecated while_each_thread().
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      90224350
    • R
      lib/kobject.c: use kvasprintf_const for formatting ->name · f773f32d
      Rasmus Villemoes 提交于
      Sometimes kobject_set_name_vargs is called with a format string conaining
      no %, or a format string of precisely "%s", where the single vararg
      happens to point to .rodata.  kvasprintf_const detects these cases for us
      and returns a copy of that pointer instead of duplicating the string, thus
      saving some run-time memory.  Otherwise, it falls back to kvasprintf.  We
      just need to always deallocate ->name using kfree_const.
      
      Unfortunately, the dance we need to do to perform the '/' -> '!'
      sanitization makes the resulting code rather ugly.
      
      I instrumented kstrdup_const to provide some statistics on the memory
      saved, and for me this gave an additional ~14KB after boot (306KB was
      already saved; this patch bumped that to 320KB).  I have
      KMALLOC_SHIFT_LOW==3, and since 80% of the kvasprintf_const hits were
      satisfied by an 8-byte allocation, the 14K would roughly be quadrupled
      when KMALLOC_SHIFT_LOW==5.  Whether these numbers are sufficient to
      justify the ugliness I'll leave to others to decide.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f773f32d
    • R
      lib/kasprintf.c: introduce kvasprintf_const · 0a9df786
      Rasmus Villemoes 提交于
      This adds kvasprintf_const which tries to use kstrdup_const if possible:
      If the format string contains no % characters, or if the format string is
      exactly "%s", we delegate to kstrdup_const.  Otherwise, we fall back to
      kvasprintf.
      
      Just as for kstrdup_const, the main motivation is to save memory by
      reusing .rodata when possible.
      
      The return value should be freed by kfree_const, just like for
      kstrdup_const.
      
      There is deliberately no kasprintf_const: In the vast majority of cases,
      the format string argument is a literal, so one can determine statically
      whether one could instead use kstrdup_const directly (which would also
      require one to change all corresponding kfree calls to kfree_const).
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0a9df786
    • D
      lib/llist.c: fix data race in llist_del_first · 2cf12f82
      Dmitry Vyukov 提交于
      llist_del_first reads entry->next, but it did not acquire visibility over
      the entry node.  As the result it can get a stale value of entry->next
      (e.g.  NULL or whatever garbage was there before the appending thread
      wrote correct value).  And then commit that value as llist head with
      cmpxchg.  That will corrupt llist.
      
      Note there is a control-dependency between read of head->first and read of
      entry->next, but it does not make the code correct.  Kernel memory model
      unambiguously says: "A load-load control dependency requires a full read
      memory barrier".
      
      Use smp_load_acquire to acquire visibility over the entry node.
      
      The data race was found with KernelThreadSanitizer (KTSAN).
      
      Here is an example of KTSAN report:
      
      ThreadSanitizer: data-race in llist_del_first
      
      Read of size 1 by thread T389 (K2630, CPU0):
       [<ffffffff8156b8a9>] llist_del_first+0x39/0x70 lib/llist.c:74
       [<     inlined    >] tty_buffer_alloc drivers/tty/tty_buffer.c:181
       [<ffffffff81664af4>] __tty_buffer_request_room+0xb4/0x250 drivers/tty/tty_buffer.c:292
       [<ffffffff81664e6c>] tty_insert_flip_string_fixed_flag+0x6c/0x150 drivers/tty/tty_buffer.c:337
       [<     inlined    >] tty_insert_flip_string include/linux/tty_flip.h:35
       [<ffffffff81667422>] pty_write+0x72/0xc0 drivers/tty/pty.c:110
       [<     inlined    >] process_output_block drivers/tty/n_tty.c:611
       [<ffffffff8165c016>] n_tty_write+0x346/0x7f0 drivers/tty/n_tty.c:2401
       [<     inlined    >] do_tty_write drivers/tty/tty_io.c:1159
       [<ffffffff816568df>] tty_write+0x21f/0x3f0 drivers/tty/tty_io.c:1245
       [<ffffffff8125f00f>] __vfs_write+0x5f/0x1f0 fs/read_write.c:489
       [<ffffffff8125ff8f>] vfs_write+0xef/0x280 fs/read_write.c:538
       [<     inlined    >] SYSC_write fs/read_write.c:585
       [<ffffffff81261390>] SyS_write+0x70/0xe0 fs/read_write.c:577
       [<ffffffff81ee862e>] entry_SYSCALL_64_fastpath+0x12/0x71 arch/x86/entry/entry_64.S:186
      
      Previous write of size 8 by thread T226 (K761, CPU0):
       [<ffffffff8156b832>] llist_add_batch+0x32/0x70 lib/llist.c:44 (discriminator 16)
       [<     inlined    >] llist_add include/linux/llist.h:180
       [<ffffffff816649fc>] tty_buffer_free+0x6c/0xb0 drivers/tty/tty_buffer.c:221
       [<ffffffff816651e7>] flush_to_ldisc+0x107/0x300 drivers/tty/tty_buffer.c:514
       [<ffffffff810b20ee>] process_one_work+0x47e/0x930 kernel/workqueue.c:2036
       [<ffffffff810b2650>] worker_thread+0xb0/0x900 kernel/workqueue.c:2170
       [<ffffffff810bbe20>] kthread+0x150/0x170 kernel/kthread.c:209
       [<ffffffff81ee8a1f>] ret_from_fork+0x3f/0x70 arch/x86/entry/entry_64.S:526
      Signed-off-by: NDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Andrey Konovalov <andreyknvl@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2cf12f82
    • V
      lib/test-string_helpers.c: add string_get_size() tests · 943ba650
      Vitaly Kuznetsov 提交于
      Add a couple of simple tests for string_get_size().  The last one will
      hang the kernel without the 'lib/string_helpers.c: fix infinite loop in
      string_get_size()' fix.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Cc: James Bottomley <JBottomley@Odin.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: "K. Y. Srinivasan" <kys@microsoft.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      943ba650
    • A
      lib/halfmd4.c: use rol32 inline function in the ROUND macro · 1c78bc17
      Alexander Kuleshov 提交于
      <linux/bitops.h> provides rol32() inline function, let's use already
      predefined function instead of direct expression.
      Signed-off-by: NAlexander Kuleshov <kuleshovmail@gmail.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1c78bc17
    • R
      lib/vsprintf.c: update documentation · d7ec9a05
      Rasmus Villemoes 提交于
      %n is no longer just ignored; it results in early return from vsnprintf.
      Also add a request to add test cases for future %p extensions.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: NMartin Kletzander <mkletzan@redhat.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d7ec9a05
    • R
      test_printf: test printf family at runtime · 707cc728
      Rasmus Villemoes 提交于
      This adds a simple module for testing the kernel's printf facilities.
      Previously, some %p extensions have caused a wrong return value in case
      the entire output didn't fit and/or been unusable in kasprintf().  This
      should help catch such issues.  Also, it should help ensure that changes
      to the formatting algorithms don't break anything.
      
      I'm not sure if we have a struct dentry or struct file lying around at
      boot time or if we can fake one, but most %p extensions should be
      testable, as should the ordinary number and string formatting.
      
      The nature of vararg functions means we can't use a more conventional
      table-driven approach.
      
      For now, this is mostly a skeleton; contributions are very
      welcome. Some tests are/will be slightly annoying to write, since the
      expected output depends on stuff like CONFIG_*, sizeof(long), runtime
      values etc.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Martin Kletzander <mkletzan@redhat.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      707cc728
    • R
      lib/vsprintf.c: remove SPECIAL handling in pointer() · 80c9eb46
      Rasmus Villemoes 提交于
      As a quick
      
         git grep -E '%[ +0#-]*#[ +0#-]*(\*|[0-9]+)?(\.(\*|[0-9]+)?)?p'
      
      shows, nobody uses the # flag with %p. Should one try to do so, one
      will be met with
      
        warning: `#' flag used with `%p' gnu_printf format [-Wformat]
      
      (POSIX and C99 both say "... For other conversion specifiers, the
      behavior is undefined.". Obviously, the kernel can choose to define
      the behaviour however it wants, but as long as gcc issues that
      warning, users are unlikely to show up.)
      
      Since default_width is effectively always 2*sizeof(void*), we can
      simplify the prologue of pointer() and save a few instructions.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Cc: Martin Kletzander <mkletzan@redhat.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      80c9eb46
    • R
      lib/vsprintf.c: also improve sanity check in bstr_printf() · 762abb51
      Rasmus Villemoes 提交于
      Quoting from 2aa2f9e2 ("lib/vsprintf.c: improve sanity check in
      vsnprintf()"):
      
          On 64 bit, size may very well be huge even if bit 31 happens to be 0.
          Somehow it doesn't feel right that one can pass a 5 GiB buffer but not a
          3 GiB one.  So cap at INT_MAX as was probably the intention all along.
          This is also the made-up value passed by sprintf and vsprintf.
      
      I should have seen this copy-pasted instance back then, but let's just
      do it now.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Cc: Martin Kletzander <mkletzan@redhat.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      762abb51
    • R
      lib/vsprintf.c: handle invalid format specifiers more robustly · b006f19b
      Rasmus Villemoes 提交于
      If we meet any invalid or unsupported format specifier, 'handling' it by
      just printing it as a literal string is not safe: Presumably the format
      string and the arguments passed gcc's type checking, but that means
      something like sprintf(buf, "%n %pd", &intvar, dentry) would end up
      interpreting &intvar as a struct dentry*.
      
      When the offending specifier was %n it used to be at the end of the format
      string, but we can't rely on that always being the case.  Also, gcc
      doesn't complain about some more or less exotic qualifiers (or 'length
      modifiers' in posix-speak) such as 'j' or 'q', but being unrecognized by
      the kernel's printf implementation, they'd be interpreted as unknown
      specifiers, and the rest of arguments would be interpreted wrongly.
      
      So let's complain about anything we don't understand, not just %n, and
      stop pretending that we'd be able to make sense of the rest of the
      format/arguments.  If the offending specifier is in a printk() call we
      unfortunately only get a "BUG: recent printk recursion!", but at least
      direct users of the sprintf family will be caught.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Cc: Martin Kletzander <mkletzan@redhat.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b006f19b
    • M
      printk: synchronize %p formatting documentation · 5e4ee7b1
      Martin Kletzander 提交于
      Move all pointer-formatting documentation to one place in the code and one
      place in the documentation instead of keeping it in three places with
      different level of completeness.  Documentation/printk-formats.txt has
      detailed information about each modifier, docstring above pointer() has
      short descriptions of them (as that is the function dealing with %p) and
      docstring above vsprintf() is removed as redundant.  Both docstrings in
      the code that were modified are updated with a reminder of updating the
      documentation upon any further change.
      
      [akpm@linux-foundation.org: fix comment]
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5e4ee7b1
    • R
      lib/dynamic_debug.c: use kstrdup_const · 3e406b1d
      Rasmus Villemoes 提交于
      Using kstrdup_const, thus reusing .rodata when possible, saves around 2 kB
      of runtime memory on my laptop/.config combination.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Jason Baron <jbaron@akamai.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3e406b1d
    • M
      mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM · 71baba4b
      Mel Gorman 提交于
      __GFP_WAIT was used to signal that the caller was in atomic context and
      could not sleep.  Now it is possible to distinguish between true atomic
      context and callers that are not willing to sleep.  The latter should
      clear __GFP_DIRECT_RECLAIM so kswapd will still wake.  As clearing
      __GFP_WAIT behaves differently, there is a risk that people will clear the
      wrong flags.  This patch renames __GFP_WAIT to __GFP_RECLAIM to clearly
      indicate what it does -- setting it allows all reclaim activity, clearing
      them prevents it.
      
      [akpm@linux-foundation.org: fix build]
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Lameter <cl@linux.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      71baba4b
    • M
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep... · d0164adc
      Mel Gorman 提交于
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
      
      __GFP_WAIT has been used to identify atomic context in callers that hold
      spinlocks or are in interrupts.  They are expected to be high priority and
      have access one of two watermarks lower than "min" which can be referred
      to as the "atomic reserve".  __GFP_HIGH users get access to the first
      lower watermark and can be called the "high priority reserve".
      
      Over time, callers had a requirement to not block when fallback options
      were available.  Some have abused __GFP_WAIT leading to a situation where
      an optimisitic allocation with a fallback option can access atomic
      reserves.
      
      This patch uses __GFP_ATOMIC to identify callers that are truely atomic,
      cannot sleep and have no alternative.  High priority users continue to use
      __GFP_HIGH.  __GFP_DIRECT_RECLAIM identifies callers that can sleep and
      are willing to enter direct reclaim.  __GFP_KSWAPD_RECLAIM to identify
      callers that want to wake kswapd for background reclaim.  __GFP_WAIT is
      redefined as a caller that is willing to enter direct reclaim and wake
      kswapd for background reclaim.
      
      This patch then converts a number of sites
      
      o __GFP_ATOMIC is used by callers that are high priority and have memory
        pools for those requests. GFP_ATOMIC uses this flag.
      
      o Callers that have a limited mempool to guarantee forward progress clear
        __GFP_DIRECT_RECLAIM but keep __GFP_KSWAPD_RECLAIM. bio allocations fall
        into this category where kswapd will still be woken but atomic reserves
        are not used as there is a one-entry mempool to guarantee progress.
      
      o Callers that are checking if they are non-blocking should use the
        helper gfpflags_allow_blocking() where possible. This is because
        checking for __GFP_WAIT as was done historically now can trigger false
        positives. Some exceptions like dm-crypt.c exist where the code intent
        is clearer if __GFP_DIRECT_RECLAIM is used instead of the helper due to
        flag manipulations.
      
      o Callers that built their own GFP flags instead of starting with GFP_KERNEL
        and friends now also need to specify __GFP_KSWAPD_RECLAIM.
      
      The first key hazard to watch out for is callers that removed __GFP_WAIT
      and was depending on access to atomic reserves for inconspicuous reasons.
      In some cases it may be appropriate for them to use __GFP_HIGH.
      
      The second key hazard is callers that assembled their own combination of
      GFP flags instead of starting with something like GFP_KERNEL.  They may
      now wish to specify __GFP_KSWAPD_RECLAIM.  It's almost certainly harmless
      if it's missed in most cases as other activity will wake kswapd.
      Signed-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0164adc
  4. 06 11月, 2015 2 次提交
  5. 05 11月, 2015 2 次提交
  6. 23 10月, 2015 2 次提交
  7. 21 10月, 2015 1 次提交
    • D
      KEYS: Merge the type-specific data with the payload data · 146aa8b1
      David Howells 提交于
      Merge the type-specific data with the payload data into one four-word chunk
      as it seems pointless to keep them separate.
      
      Use user_key_payload() for accessing the payloads of overloaded
      user-defined keys.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      cc: linux-cifs@vger.kernel.org
      cc: ecryptfs@vger.kernel.org
      cc: linux-ext4@vger.kernel.org
      cc: linux-f2fs-devel@lists.sourceforge.net
      cc: linux-nfs@vger.kernel.org
      cc: ceph-devel@vger.kernel.org
      cc: linux-ima-devel@lists.sourceforge.net
      146aa8b1
  8. 20 10月, 2015 1 次提交
  9. 17 10月, 2015 1 次提交
  10. 15 10月, 2015 1 次提交
  11. 14 10月, 2015 2 次提交
  12. 08 10月, 2015 4 次提交
  13. 07 10月, 2015 1 次提交
  14. 06 10月, 2015 1 次提交
  15. 05 10月, 2015 1 次提交
  16. 04 10月, 2015 2 次提交