1. 20 8月, 2014 2 次提交
  2. 02 8月, 2014 1 次提交
  3. 29 7月, 2014 2 次提交
  4. 25 7月, 2014 1 次提交
  5. 10 7月, 2014 2 次提交
  6. 23 6月, 2014 1 次提交
  7. 08 6月, 2014 1 次提交
  8. 04 6月, 2014 1 次提交
  9. 07 5月, 2014 15 次提交
  10. 02 4月, 2014 1 次提交
  11. 01 4月, 2014 1 次提交
  12. 18 3月, 2014 3 次提交
  13. 28 2月, 2014 1 次提交
    • C
      f2fs: fix dirty page accounting when redirty · 9cf3c389
      Chao Yu 提交于
      We should de-account dirty counters for page when redirty in ->writepage().
      
      Wu Fengguang described in 'commit 971767ca':
      "writeback: fix dirtied pages accounting on redirty
      De-account the accumulative dirty counters on page redirty.
      
      Page redirties (very common in ext4) will introduce mismatch between
      counters (a) and (b)
      
      a) NR_DIRTIED, BDI_DIRTIED, tsk->nr_dirtied
      b) NR_WRITTEN, BDI_WRITTEN
      
      This will introduce systematic errors in balanced_rate and result in
      dirty page position errors (ie. the dirty pages are no longer balanced
      around the global/bdi setpoints)."
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      9cf3c389
  14. 24 2月, 2014 1 次提交
    • J
      f2fs: fix not to write data pages on the page reclaiming path · 8618b881
      Jaegeuk Kim 提交于
      Even if f2fs_write_data_page is called by the page reclaiming path, we should
      not write the page to provide enough free segments for the worst case scenario.
      Otherwise, f2fs can face with no free segment while gc is conducted, resulting
      in:
      
       ------------[ cut here ]------------
       kernel BUG at /home/zeus/f2fs_test/src/fs/f2fs/segment.c:565!
       RIP: 0010:[<ffffffffa02c3b11>]  [<ffffffffa02c3b11>] new_curseg+0x331/0x340 [f2fs]
       Call Trace:
        allocate_segment_by_default+0x204/0x280 [f2fs]
        allocate_data_block+0x108/0x210 [f2fs]
        write_data_page+0x8a/0xc0 [f2fs]
        do_write_data_page+0xe1/0x2a0 [f2fs]
        move_data_page+0x8a/0xf0 [f2fs]
        f2fs_gc+0x446/0x970 [f2fs]
        f2fs_balance_fs+0xb6/0xd0 [f2fs]
        f2fs_write_begin+0x50/0x350 [f2fs]
        ? unlock_page+0x27/0x30
        ? unlock_page+0x27/0x30
        generic_file_buffered_write+0x10a/0x280
        ? file_update_time+0xa3/0xf0
        __generic_file_aio_write+0x1c8/0x3d0
        ? generic_file_aio_write+0x52/0xb0
        ? generic_file_aio_write+0x52/0xb0
        generic_file_aio_write+0x65/0xb0
        do_sync_write+0x5a/0x90
        vfs_write+0xc5/0x1f0
        SyS_write+0x55/0xa0
        system_call_fastpath+0x16/0x1b
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      8618b881
  15. 17 2月, 2014 3 次提交
  16. 22 1月, 2014 1 次提交
  17. 20 1月, 2014 1 次提交
  18. 16 1月, 2014 2 次提交
    • C
      f2fs: missing REQ_META and REQ_PRIO when sync_meta_pages(META_FLUSH) · c434cbc0
      Changman Lee 提交于
      Doing sync_meta_pages with META_FLUSH when checkpoint, we overide rw
      using WRITE_FLUSH_FUA. At this time, we also should set
      REQ_META|REQ_PRIO.
      Signed-off-by: NChangman Lee <cm224.lee@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      c434cbc0
    • J
      f2fs: avoid f2fs_balance_fs call during pageout · c33ec326
      Jaegeuk Kim 提交于
      This patch should resolve the following bug.
      
      =========================================================
      [ INFO: possible irq lock inversion dependency detected ]
      3.13.0-rc5.f2fs+ #6 Not tainted
      ---------------------------------------------------------
      kswapd0/41 just changed the state of lock:
       (&sbi->gc_mutex){+.+.-.}, at: [<ffffffffa030503e>] f2fs_balance_fs+0xae/0xd0 [f2fs]
      but this lock took another, RECLAIM_FS-READ-unsafe lock in the past:
       (&sbi->cp_rwsem){++++.?}
      
      and interrupts could create inverse lock ordering between them.
      
      other info that might help us debug this:
      Chain exists of:
        &sbi->gc_mutex --> &sbi->cp_mutex --> &sbi->cp_rwsem
      
       Possible interrupt unsafe locking scenario:
      
             CPU0                    CPU1
             ----                    ----
        lock(&sbi->cp_rwsem);
                                     local_irq_disable();
                                     lock(&sbi->gc_mutex);
                                     lock(&sbi->cp_mutex);
        <Interrupt>
          lock(&sbi->gc_mutex);
      
       *** DEADLOCK ***
      
      This bug is due to the f2fs_balance_fs call in f2fs_write_data_page.
      If f2fs_write_data_page is triggered by wbc->for_reclaim via kswapd, it should
      not call f2fs_balance_fs which tries to get a mutex grabbed by original syscall
      flow.
      Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
      c33ec326