1. 13 12月, 2012 3 次提交
  2. 06 11月, 2012 1 次提交
    • S
      ceph: Fix i_size update race · 22cddde1
      Sage Weil 提交于
      ceph_aio_write() has an optimization that marks cap EPH_CAP_FILE_WR
      dirty before data is copied to page cache and inode size is updated.
      If ceph_check_caps() flushes the dirty cap before the inode size is
      updated, MDS can miss the new inode size. The fix is move
      ceph_{get,put}_cap_refs() into ceph_write_{begin,end}() and call
      __ceph_mark_dirty_caps() after inode size is updated.
      Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
      Signed-off-by: NSage Weil <sage@inktank.com>
      22cddde1
  3. 04 11月, 2012 1 次提交
  4. 27 10月, 2012 2 次提交
  5. 03 10月, 2012 2 次提交
  6. 02 10月, 2012 4 次提交
    • S
      ceph: propagate layout error on osd request creation · 6816282d
      Sage Weil 提交于
      If we are creating an osd request and get an invalid layout, return
      an EINVAL to the caller.  We switch up the return to have an error
      code instead of NULL implying -ENOMEM.
      Signed-off-by: NSage Weil <sage@inktank.com>
      Reviewed-by: NAlex Elder <elder@inktank.com>
      6816282d
    • W
      ceph: convert to use le32_add_cpu() · b905a7f8
      Wei Yongjun 提交于
      Convert cpu_to_le32(le32_to_cpu(E1) + E2) to use le32_add_cpu().
      
      dpatch engine is used to auto generate this patch.
      (https://github.com/weiyj/dpatch)
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: NSage Weil <sage@inktank.com>
      b905a7f8
    • Y
      ceph: Fix oops when handling mdsmap that decreases max_mds · 3e8f43a0
      Yan, Zheng 提交于
      When i >= newmap->m_max_mds, ceph_mdsmap_get_addr(newmap, i) return
      NULL. Passing NULL to memcmp() triggers oops.
      Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
      Signed-off-by: NSage Weil <sage@inktank.com>
      3e8f43a0
    • A
      ceph: let path portion of mount "device" be optional · c98f533c
      Alex Elder 提交于
      A recent change to /sbin/mountall causes any trailing '/' character
      in the "device" (or fs_spec) field in /etc/fstab to be stripped.  As
      a result, an entry for a ceph mount that intends to mount the root
      of the name space ends up with now path portion, and the ceph mount
      option processing code rejects this.
      
      That is, an entry in /etc/fstab like:
          cephserver:port:/ /mnt ceph defaults 0 0
      provides to the ceph code just "cephserver:port:" as the "device,"
      and that gets rejected.
      
      Although this is a bug in /sbin/mountall, we can have the ceph mount
      code support an empty/nonexistent path, interpreting it to mean the
      root of the name space.
      
      RFC 5952 offers recommendations for how to express IPv6 addresses,
      and recommends the usage found in RFC 3986 (which specifies the
      format for URI's) for representing both IPv4 and IPv6 addresses that
      include port numbers.  (See in particular the definition of
      "authority" found in the Appendix of RFC 3986.)
      
      According to those standards, no host specification will ever
      contain a '/' character.  As a result, it is sufficient to scan a
      provided "device" from an /etc/fstab entry for the first '/'
      character, and if it's found, treat that as the beginning of the
      path.  If no '/' character is present, we can treat the entire
      string as the monitor host specification(s), and assume the path
      to be the root of the name space.  We'll still require a ':' to
      separate the host portion from the (possibly empty) path portion.
      
      This means that we can more formally define how ceph will interpret
      the "device" it's provided when processing a mount request:
      
          "device" will look like:
              <server_spec>[,<server_spec>...]:[<path>]
          where
              <server_spec> is <ip>[:<port>]
              <path> is optional, but if present must begin with '/'
      
      This addresses http://tracker.newdream.net/issues/2919Signed-off-by: NAlex Elder <elder@inktank.com>
      Reviewed-by: NDan Mick <dan.mick@inktank.com>
      c98f533c
  7. 22 8月, 2012 2 次提交
  8. 21 8月, 2012 1 次提交
  9. 03 8月, 2012 1 次提交
    • S
      ceph: simplify+fix atomic_open · 5ef50c3b
      Sage Weil 提交于
      The initial ->atomic_open op was carried over from the old intent code,
      which was incomplete and didn't really work.  Replace it with a fresh
      method.  In particular:
      
       * always attempt to do an atomic open+lookup, both for the create case
         and for lookups of existing files.
       * fix symlink handling by returning 1 to the VFS so that we can follow
         the link to its destination. This fixes a longstanding ceph bug (#2392).
      Signed-off-by: NSage Weil <sage@inktank.com>
      5ef50c3b
  10. 31 7月, 2012 6 次提交
  11. 14 7月, 2012 10 次提交
  12. 06 7月, 2012 1 次提交
  13. 20 6月, 2012 1 次提交
  14. 06 6月, 2012 1 次提交
  15. 01 6月, 2012 3 次提交
  16. 30 5月, 2012 1 次提交