1. 11 5月, 2015 1 次提交
  2. 08 5月, 2015 1 次提交
    • B
      jffs2: fix unbalanced locking · 7aaea760
      Brian Norris 提交于
      Li Zefan reported an unbalanced locking issue, found by his
      internal debugging feature on runtime. The particular case he was
      looking at doesn't lead to a deadlock, as the structure that this lock
      is embedded in is freed on error. But we should straighten out the error
      handling.
      
      Because several callers of jffs2_do_read_inode_internal() /
      jffs2_do_read_inode() already handle the locking/unlocking and inode
      clearing at their own level, let's just push any unlocks/clearing down
      to the caller. This consistency is much easier to verify.
      Reported-by: NLi Zefan <lizefan@huawei.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      7aaea760
  3. 16 4月, 2015 1 次提交
  4. 04 4月, 2014 2 次提交
    • S
      mm: remove read_cache_page_async() · 67f9fd91
      Sasha Levin 提交于
      This patch removes read_cache_page_async() which wasn't really needed
      anywhere and simplifies the code around it a bit.
      
      read_cache_page_async() is useful when we want to read a page into the
      cache without waiting for it to complete.  This happens when the
      appropriate callback 'filler' doesn't complete its read operation and
      releases the page lock immediately, and instead queues a different
      completion routine to do that.  This never actually happened anywhere in
      the code.
      
      read_cache_page_async() had 3 different callers:
      
      - read_cache_page() which is the sync version, it would just wait for
        the requested read to complete using wait_on_page_read().
      
      - JFFS2 would call it from jffs2_gc_fetch_page(), but the filler
        function it supplied doesn't do any async reads, and would complete
        before the filler function returns - making it actually a sync read.
      
      - CRAMFS would call it using the read_mapping_page_async() wrapper, with
        a similar story to JFFS2 - the filler function doesn't do anything that
        reminds async reads and would always complete before the filler function
        returns.
      
      To sum it up, the code in mm/filemap.c never took advantage of having
      read_cache_page_async().  While there are filler callbacks that do async
      reads (such as the block one), we always called it with the
      read_cache_page().
      
      This patch adds a mandatory wait for read to complete when adding a new
      page to the cache, and removes read_cache_page_async() and its wrappers.
      Signed-off-by: NSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      67f9fd91
    • J
      mm + fs: store shadow entries in page cache · 91b0abe3
      Johannes Weiner 提交于
      Reclaim will be leaving shadow entries in the page cache radix tree upon
      evicting the real page.  As those pages are found from the LRU, an
      iput() can lead to the inode being freed concurrently.  At this point,
      reclaim must no longer install shadow pages because the inode freeing
      code needs to ensure the page tree is really empty.
      
      Add an address_space flag, AS_EXITING, that the inode freeing code sets
      under the tree lock before doing the final truncate.  Reclaim will check
      for this flag before installing shadow pages.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: NRik van Riel <riel@redhat.com>
      Reviewed-by: NMinchan Kim <minchan@kernel.org>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Bob Liu <bob.liu@oracle.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Greg Thelen <gthelen@google.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Luigi Semenzato <semenzato@google.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Metin Doslu <metin@citusdata.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Ozgun Erdogan <ozgun@citusdata.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Roman Gushchin <klamm@yandex-team.ru>
      Cc: Ryan Mallon <rmallon@gmail.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      91b0abe3
  5. 11 3月, 2014 1 次提交
  6. 26 1月, 2014 1 次提交
  7. 28 10月, 2013 1 次提交
  8. 21 9月, 2012 1 次提交
  9. 06 5月, 2012 1 次提交
  10. 27 3月, 2012 3 次提交
  11. 21 3月, 2012 1 次提交
  12. 10 1月, 2012 1 次提交
  13. 02 11月, 2011 1 次提交
  14. 19 10月, 2011 1 次提交
    • A
      jffs2: implement mount option parsing and compression overriding · 92abc475
      Andres Salomon 提交于
      Currently jffs2 has compile-time constants (and .config options)
      controlling whether or not the various compression/decompression
      drivers are built in and enabled.  This is fine for embedded
      systems, but it clashes with distribution kernels.  Distro kernels
      tend to turn on everything; this causes OpenFirmware to fall
      over, as it understands ZLIB-compressed inodes.  Booting a kernel
      that has LZO compression enabled, writing to the boot partition,
      and then rebooting causes OFW to fail to read the kernel from
      the filesystem.  This is because LZO compression has priority
      when writing new data to jffs2, if LZO is enabled.
      
      This patch adds mount option parsing, and a single supported
      option ("compr=none").  This adds the flexibility of being
      able to specify which compressor overrides on a per-superblock
      basis.  For now, we can simply disable compression;
      additional flexibility coming soon.
      
      v2: kill some printks, and implement show_options as suggested
      by Artem Bityutskiy.
      Signed-off-by: NAndres Salomon <dilinger@queued.net>
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@intel.com>
      92abc475
  15. 01 8月, 2011 1 次提交
  16. 27 7月, 2011 1 次提交
  17. 24 7月, 2011 1 次提交
  18. 27 5月, 2011 1 次提交
    • C
      fs: pass exact type of data dirties to ->dirty_inode · aa385729
      Christoph Hellwig 提交于
      Tell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or
      anything else, so that the filesystem can track internally if it
      needs to push out a transaction for fdatasync or not.
      
      This is just the prototype change with no user for it yet.  I plan
      to push large XFS changes for the next merge window, and getting
      this trivial infrastructure in this window would help a lot to avoid
      tree interdependencies.
      
      Also remove incorrect comments that ->dirty_inode can't block.  That
      has been changed a long time ago, and many implementations rely on it.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      aa385729
  19. 25 10月, 2010 1 次提交
  20. 05 10月, 2010 1 次提交
    • A
      BKL: Remove BKL from jffs2 · 1a028dd2
      Arnd Bergmann 提交于
      The BKL is only used in put_super, fill_super and remount_fs that are all
      three protected by the superblocks s_umount rw_semaphore. Therefore it is
      safe to remove the BKL entirely.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      1a028dd2
  21. 10 8月, 2010 2 次提交
    • A
      convert remaining ->clear_inode() to ->evict_inode() · b57922d9
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b57922d9
    • C
      check ATTR_SIZE contraints in inode_change_ok · 2c27c65e
      Christoph Hellwig 提交于
      Make sure we check the truncate constraints early on in ->setattr by adding
      those checks to inode_change_ok.  Also clean up and document inode_change_ok
      to make this obvious.
      
      As a fallout we don't have to call inode_newsize_ok from simple_setsize and
      simplify it down to a truncate_setsize which doesn't return an error.  This
      simplifies a lot of setattr implementations and means we use truncate_setsize
      almost everywhere.  Get rid of fat_setsize now that it's trivial and mark
      ext2_setsize static to make the calling convention obvious.
      
      Keep the inode_newsize_ok in vmtruncate for now as all callers need an
      audit for its removal anyway.
      
      Note: setattr code in ecryptfs doesn't call inode_change_ok at all and
      needs a deeper audit, but that is left for later.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      2c27c65e
  22. 08 8月, 2010 1 次提交
  23. 03 6月, 2010 1 次提交
  24. 28 5月, 2010 1 次提交
  25. 25 2月, 2010 1 次提交
  26. 12 6月, 2009 2 次提交
  27. 01 9月, 2008 1 次提交
  28. 18 8月, 2008 1 次提交
  29. 02 5月, 2008 2 次提交
  30. 22 4月, 2008 1 次提交
  31. 25 2月, 2008 2 次提交
  32. 08 2月, 2008 1 次提交
  33. 02 11月, 2007 1 次提交