1. 22 3月, 2011 7 次提交
    • H
      ceph: add request to the tail of unsafe write list · 49bcb932
      Henry C Chang 提交于
      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: NHenry C Chang <henry_c_chang@tcloudcomputing.com>
      Signed-off-by: NSage Weil <sage@newdream.net>
      49bcb932
    • H
      ceph: remove request from unsafe list if it is canceled/timed out · 78a25565
      Henry C Chang 提交于
      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: NHenry C Chang <henry_c_chang@tcloudcomputing.com>
      Signed-off-by: NSage Weil <sage@newdream.net>
      78a25565
    • S
      ceph: move readahead default to fs/ceph from libceph · 80456f86
      Sage Weil 提交于
      Signed-off-by: NSage Weil <sage@newdream.net>
      80456f86
    • Y
      ceph: add ino32 mount option · ad1fee96
      Yehuda Sadeh 提交于
      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: NYehuda Sadeh <yehuda@hq.newdream.net>
      ad1fee96
    • Y
      ceph: update common header files · 483fac71
      Yehuda Sadeh 提交于
      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: NYehuda Sadeh <yehuda@hq.newdream.net>
      483fac71
    • S
      ceph: remove debugfs debug cruft · 21f3b5f1
      Sage Weil 提交于
      Whoops!
      Signed-off-by: NSage Weil <sage@newdream.net>
      21f3b5f1
    • S
      libceph: fix osd request queuing on osdmap updates · 6f6c7006
      Sage Weil 提交于
      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: NSage Weil <sage@newdream.net>
      6f6c7006
  2. 16 3月, 2011 2 次提交
    • S
      ceph: preserve I_COMPLETE across rename · 09adc80c
      Sage Weil 提交于
      d_move puts the renamed dentry at the end of d_subdirs, screwing with our
      cached dentry directory offsets.  We were just clearing I_COMPLETE to avoid
      any possibility of trouble.  However, assigning the renamed dentry an
      offset at the end of the directory (to match it's new d_subdirs position)
      is sufficient to maintain correct behavior and hold onto I_COMPLETE.
      
      This is especially important for workloads like rsync, which renames files
      into place.  Before, we would lose I_COMPLETE and do MDS lookups for each
      file.  With this patch we only talk to the MDS on create and rename.
      Signed-off-by: NSage Weil <sage@newdream.net>
      09adc80c
    • T
      libceph: Fix base64-decoding when input ends in newline. · b09734b1
      Tommi Virtanen 提交于
      It used to return -EINVAL because it thought the end was not aligned
      to 4 bytes.
      
      Clean up superfluous src < end test in if, the while itself guarantees
      that.
      Signed-off-by: NTommi Virtanen <tommi.virtanen@dreamhost.com>
      Signed-off-by: NSage Weil <sage@newdream.net>
      b09734b1
  3. 15 3月, 2011 31 次提交