1. 01 2月, 2012 5 次提交
  2. 13 1月, 2012 9 次提交
  3. 19 10月, 2011 7 次提交
    • 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 size of upcall message · fdc17abb
      Jim Rees 提交于
      Make the status field explicitly 32 bits.  "...it's unlikely that the kernel
      and userspace would differ on the size of an int here, but it might be a
      good idea to go ahead and make that explicitly 32 bits in case we end up
      dealing with more exotic arches at some point in the future."
      Suggested-by: NJeff Layton <jlayton@redhat.com>
      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>
      fdc17abb
    • 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
  4. 04 8月, 2011 1 次提交
  5. 01 8月, 2011 18 次提交