1. 27 4月, 2012 1 次提交
  2. 21 3月, 2012 1 次提交
  3. 11 3月, 2012 1 次提交
    • S
      NFS: replace global bl_wq with per-net one · 5ffaf855
      Stanislav Kinsbursky 提交于
      This queue is used for sleeping in kernel and it have to be per-net since we
      don't want to wake any other waiters except in out network nemespace.
      BTW, move wq to per-net data is easy. But some way to handle upcall timeouts
      have to be provided. On message destroy in case of timeout, tasks, waiting for
      message to be delivered, should be awakened. Thus, some data required to
      located the right wait queue. Chosen solution replaces rpc_pipe_msg object with
      new introduced bl_pipe_msg object, containing rpc_pipe_msg and proper wq.
      Signed-off-by: NStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      5ffaf855
  4. 01 2月, 2012 5 次提交
  5. 13 1月, 2012 7 次提交
  6. 19 10月, 2011 6 次提交
    • P
      pnfsblock: fix writeback deadlock · 75422745
      Peng Tao 提交于
      We should check if the sector is already initialized before
      trying to grab the page from page cache. Otherwise when two
      pages of the same block are written back by two threads each
      calling from writepage_locked, it can cause deadlock like bellow.
      
       [ 1080.972099] INFO: task kswapd0:25 blocked for more than 120 seconds.
       [ 1080.972377] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
       [ 1080.972812] kswapd0         D ffff88000c4926c0     0    25      2 0x00000000
       [ 1080.972816]  ffff88000df276b0 0000000000000046 ffff88000df27640 ffffffff81013ba7
       [ 1080.972821]  ffff88000c492310 ffff88000df27fd8 ffff88000df27fd8 00000000001d3440
       [ 1080.972824]  ffff88000c378000 ffff88000c492310 ffff8800175d3d40 ffff880017fc75a8
       [ 1080.972828] Call Trace:
       [ 1080.972860]  [<ffffffff81013ba7>] ? read_tsc+0x9/0x19
       [ 1080.972877]  [<ffffffff810e0b23>] ? lock_page+0x2b/0x2b
       [ 1080.972899]  [<ffffffff81475a1d>] io_schedule+0x63/0x7e
       [ 1080.972902]  [<ffffffff810e0b31>] sleep_on_page+0xe/0x12
       [ 1080.972905]  [<ffffffff81475fe8>] __wait_on_bit_lock+0x46/0x8f
       [ 1080.972916]  [<ffffffff810822d7>] ? lock_release_holdtime.part.7+0x6b/0x72
       [ 1080.972919]  [<ffffffff810e0af6>] __lock_page+0x66/0x68
       [ 1080.972928]  [<ffffffff81072705>] ? autoremove_wake_function+0x3d/0x3d
       [ 1080.972932]  [<ffffffff810e0b1f>] lock_page+0x27/0x2b
       [ 1080.972934]  [<ffffffff810e0bcf>] find_lock_page+0x34/0x57
       [ 1080.972937]  [<ffffffff810e1738>] find_or_create_page+0x34/0x8a
       [ 1080.972947]  [<ffffffffa034245b>] bl_write_pagelist+0x205/0x6da [blocklayoutdriver]
       [ 1080.972951]  [<ffffffffa034145d>] ? bl_free_lseg+0x38/0x38 [blocklayoutdriver]
       [ 1080.972995]  [<ffffffffa02e27b9>] ? nfs_write_rpcsetup+0x118/0x123 [nfs]
       [ 1080.973033]  [<ffffffffa030246b>] pnfs_generic_pg_writepages+0x10b/0x1f4 [nfs]
       [ 1080.973089]  [<ffffffffa02deaae>] nfs_pageio_doio+0x1a/0x43 [nfs]
       [ 1080.973098]  [<ffffffffa02df035>] nfs_pageio_complete+0x16/0x2d [nfs]
       [ 1080.973108]  [<ffffffffa02e2d8f>] nfs_writepage_locked+0xa0/0xbf [nfs]
       [ 1080.973119]  [<ffffffffa02e36a1>] nfs_writepage+0x16/0x2b [nfs]
       [ 1080.973122]  [<ffffffff810e8762>] ? clear_page_dirty_for_io+0x87/0x9a
       [ 1080.973133]  [<ffffffff810efc5b>] shrink_page_list+0x39b/0x6c8
       [ 1080.973139]  [<ffffffff810f03bb>] shrink_inactive_list+0x22c/0x39e
       [ 1080.973144]  [<ffffffff810822d7>] ? lock_release_holdtime.part.7+0x6b/0x72
       [ 1080.973148]  [<ffffffff810f0c33>] shrink_zone+0x445/0x588
       [ 1080.973152]  [<ffffffff810f1a11>] balance_pgdat+0x2c2/0x56b
       [ 1080.973170]  [<ffffffff81254208>] ? __bitmap_weight+0x34/0x80
       [ 1080.973175]  [<ffffffff810f1f78>] kswapd+0x2be/0x2fa
       [ 1080.973179]  [<ffffffff810726c8>] ? __init_waitqueue_head+0x4b/0x4b
       [ 1080.973183]  [<ffffffff810f1cba>] ? balance_pgdat+0x56b/0x56b
       [ 1080.973187]  [<ffffffff81071f69>] kthread+0xa8/0xb0
       [ 1080.973200]  [<ffffffff814806b4>] kernel_thread_helper+0x4/0x10
       [ 1080.973205]  [<ffffffff81071ec1>] ? __init_kthread_worker+0x5a/0x5a
       [ 1080.973210]  [<ffffffff814806b0>] ? gs_change+0x13/0x13
       [ 1080.973213] no locks held by kswapd0/25.
      Signed-off-by: NPeng Tao <peng_tao@emc.com>
      Signed-off-by: NJim Rees <rees@umich.edu>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      75422745
    • P
      pnfsblock: fix NULL pointer dereference · e6d05a75
      Peng Tao 提交于
      bl_add_page_to_bio returns error pointer. bio should be reset to
      NULL in failure cases as the out path always calls bl_submit_bio.
      Signed-off-by: NPeng Tao <peng_tao@emc.com>
      Signed-off-by: NJim Rees <rees@umich.edu>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      e6d05a75
    • P
      pnfs: make _set_lo_fail generic · 1b0ae068
      Peng Tao 提交于
      file layout and block layout both use it to set mark layout io failure
      bit. So make it generic.
      Signed-off-by: NPeng Tao <peng_tao@emc.com>
      Signed-off-by: NJim Rees <rees@umich.edu>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      1b0ae068
    • P
      pnfsblock: add missing rpc_put_mount and path_put · 760383f1
      Peng Tao 提交于
      Reviewed-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NPeng Tao <peng_tao@emc.com>
      Signed-off-by: NJim Rees <rees@umich.edu>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      760383f1
    • P
      SUNRPC/NFS: make rpc pipe upcall generic · c1225158
      Peng Tao 提交于
      The same function is used by idmap, gss and blocklayout code. Make it
      generic.
      Signed-off-by: NPeng Tao <peng_tao@emc.com>
      Signed-off-by: NJim Rees <rees@umich.edu>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      c1225158
    • J
      pnfsblock: fix return code confusion · 516f2e24
      Jim Rees 提交于
      Always return PTR_ERR, not NULL, from nfs4_blk_get_deviceinfo and
      nfs4_blk_decode_device.
      
      Check for IS_ERR, not NULL, in bl_set_layoutdriver when calling
      nfs4_blk_get_deviceinfo.
      Signed-off-by: NJim Rees <rees@umich.edu>
      Signed-off-by: NBenny Halevy <bhalevy@tonian.com>
      Cc: stable@kernel.org [3.0]
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      516f2e24
  7. 04 8月, 2011 1 次提交
  8. 01 8月, 2011 13 次提交