1. 11 12月, 2016 4 次提交
    • A
      exofs: don't mess with simple_write_{begin,end} · 92e50d2d
      Al Viro 提交于
      ... and don't zero anything on short copy; just unlock
      and return 0 if that has happened on non-uptodate page.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      92e50d2d
    • A
      9p: saner ->write_end() on failing copy into non-uptodate page · 77469c3f
      Al Viro 提交于
      If we had a short copy into an uptodate page, there's no reason
      whatsoever to zero anything; OTOH, if that page had _not_ been
      uptodate, we must have been trying to overwrite it completely
      and got a short copy.  In that case, overwriting the end with
      zeroes, marking uptodate and sending to server is just plain
      wrong.  Just unlock, keep it non-uptodate and return 0.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      77469c3f
    • A
      fix gfs2_stuffed_write_end() on short copies · 43388b21
      Al Viro 提交于
      a) the page is uptodate - ->write_begin() would either fail (in which
      case we don't reach ->write_end()), or unstuff the inode, or find the
      page already uptodate, or do a successful call of stuffed_readpage(),
      which would've made it uptodate
      
      b) zeroing the tail in pagecache is wrong.  kill -9 at the right time
      while writing unmodified file contents to the same file should _not_
      leave us in a situation when read() from the file will be reporting
      it full of zeroes.  Especially since that effect will be transient -
      at some later point the page will be evicted and then we'll be back
      to the real file contents.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      43388b21
    • A
      fix ceph_write_end() · b9de313c
      Al Viro 提交于
      don't zero on short copies; if the page was uptodate it's just plain
      wrong, and if it wasn't we'll be better off just returning 0 and
      buggering off.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b9de313c
  2. 10 12月, 2016 1 次提交
    • A
      nfs_write_end(): fix handling of short copies · c0cf3ef5
      Al Viro 提交于
      What matters when deciding if we should make a page uptodate is
      not how much we _wanted_ to copy, but how much we actually have
      copied.  As it is, on architectures that do not zero tail on
      short copy we can leave uninitialized data in page marked uptodate.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c0cf3ef5
  3. 28 11月, 2016 3 次提交
  4. 27 11月, 2016 8 次提交
  5. 26 11月, 2016 22 次提交
  6. 25 11月, 2016 2 次提交
    • J
      parisc: Also flush data TLB in flush_icache_page_asm · 5035b230
      John David Anglin 提交于
      This is the second issue I noticed in reviewing the parisc TLB code.
      
      The fic instruction may use either the instruction or data TLB in
      flushing the instruction cache.  Thus, on machines with a split TLB, we
      should also flush the data TLB after setting up the temporary alias
      registers.
      
      Although this has no functional impact, I changed the pdtlb and pitlb
      instructions to consistently use the index register %r0.  These
      instructions do not support integer displacements.
      
      Tested on rp3440 and c8000.
      Signed-off-by: NJohn David Anglin  <dave.anglin@bell.net>
      Cc: <stable@vger.kernel.org> # v3.16+
      Signed-off-by: NHelge Deller <deller@gmx.de>
      5035b230
    • J
      parisc: Fix race in pci-dma.c · c0452fb9
      John David Anglin 提交于
      We are still troubled by occasional random segmentation faults and
      memory memory corruption on SMP machines.  The causes quite a few
      package builds to fail on the Debian buildd machines for parisc.  When
      gcc-6 failed to build three times in a row, I looked again at the TLB
      related code.  I found a couple of issues.  This is the first.
      
      In general, we need to ensure page table updates and corresponding TLB
      purges are atomic.  The attached patch fixes an instance in pci-dma.c
      where the page table update was not guarded by the TLB lock.
      
      Tested on rp3440 and c8000.  So far, no further random segmentation
      faults have been observed.
      Signed-off-by: NJohn David Anglin  <dave.anglin@bell.net>
      Cc: <stable@vger.kernel.org> # v3.16+
      Signed-off-by: NHelge Deller <deller@gmx.de>
      c0452fb9