1. 21 Mar, 2011 7 commits
    • Henry C Chang's avatar
      ceph: add request to the tail of unsafe write list · 49bcb932
      Henry C Chang authored
      In sync_write_wait(), we assume that the newest request is at the
      tail of unsafe write list. We should maintain the semantics here.
      Signed-off-by: default avatarHenry C Chang <henry_c_chang@tcloudcomputing.com>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      49bcb932
    • Henry C Chang's avatar
      ceph: remove request from unsafe list if it is canceled/timed out · 78a25565
      Henry C Chang authored
      This fixes the list corruption warning like this:
      
      ------------[ cut here ]------------
      WARNING: at lib/list_debug.c:30 __list_add+0x68/0x81()
      Hardware name: X8DTU
      list_add corruption. prev->next should be next (ffff880618931250), but was (null). (prev=ffff880c188b9130).
      Modules linked in: nfsd lockd nfs_acl auth_rpcgss exportfs ceph libceph libcrc32c sunrpc ipv6 fuse igb i2c_i801 ioatdma i2c_core iTCO_wdt iTCO_vendor_support joydev dca serio_raw usb_storage [last unloaded: scsi_wait_scan]
      Pid: 10977, comm: smbd Tainted: G        W  2.6.32.23-170.Elaster.xendom0.fc12.x86_64 #1
      Call Trace:
      [<ffffffff8105753c>] warn_slowpath_common+0x7c/0x94
      [<ffffffff810575ab>] warn_slowpath_fmt+0x41/0x43
      [<ffffffff812351a3>] __list_add+0x68/0x81
      [<ffffffffa014799d>] ceph_aio_write+0x614/0x8a2 [ceph]
      [<ffffffff8111d2a0>] do_sync_write+0xe8/0x125
      [<ffffffff81075a1f>] ? autoremove_wake_function+0x0/0x39
      [<ffffffff811f21ec>] ? selinux_file_permission+0x5c/0xb3
      [<ffffffff811e8521>] ? security_file_permission+0x16/0x18
      [<ffffffff8111d864>] vfs_write+0xae/0x10b
      [<ffffffff8111d91b>] sys_pwrite64+0x5a/0x76
      [<ffffffff81012d32>] system_call_fastpath+0x16/0x1b
      ---[ end trace 08573eb9f07ff6f4 ]---
      Signed-off-by: default avatarHenry C Chang <henry_c_chang@tcloudcomputing.com>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      78a25565
    • Sage Weil's avatar
      80456f86
    • Yehuda Sadeh's avatar
      ceph: add ino32 mount option · ad1fee96
      Yehuda Sadeh authored
      The ino32 mount option forces the ceph fs to report 32 bit
      ino values.  This is useful for 64 bit kernels with 32 bit userspace.
      Signed-off-by: default avatarYehuda Sadeh <yehuda@hq.newdream.net>
      ad1fee96
    • Yehuda Sadeh's avatar
      ceph: update common header files · 483fac71
      Yehuda Sadeh authored
      This updates the common header files used by the different ceph
      related modules. Specifically it adds definitions required by
      the rbd watch/notify feature.
      Signed-off-by: default avatarYehuda Sadeh <yehuda@hq.newdream.net>
      483fac71
    • Sage Weil's avatar
      ceph: remove debugfs debug cruft · 21f3b5f1
      Sage Weil authored
      Whoops!
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      21f3b5f1
    • Sage Weil's avatar
      libceph: fix osd request queuing on osdmap updates · 6f6c7006
      Sage Weil authored
      If we send a request to osd A, and the request's pg remaps to osd B and
      then back to A in quick succession, we need to resend the request to A. The
      old code was only calling kick_requests after processing all incremental
      maps in a message, so it was very possible to not resend a request that
      needed to be resent.  This would make the osd eventually time out (at least
      with the current default of osd timeouts enabled).
      
      The correct approach is to scan requests on every map incremental.  This
      patch refactors the kick code in a few ways:
       - all requests are either on req_lru (in flight), req_unsent (ready to
         send), or req_notarget (currently map to no up osd)
       - mapping always done by map_request (previous map_osds)
       - if the mapping changes, we requeue.  requests are resent only after all
         map incrementals are processed.
       - some osd reset code is moved out of kick_requests into a separate
         function
       - the "kick this osd" functionality is moved to kick_osd_requests, as it
         is unrelated to scanning for request->pg->osd mapping changes
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      6f6c7006
  2. 15 Mar, 2011 3 commits
  3. 14 Mar, 2011 30 commits