1. 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
  2. 02 10月, 2012 1 次提交
  3. 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
  4. 14 7月, 2012 5 次提交
  5. 08 5月, 2012 1 次提交
  6. 14 12月, 2011 1 次提交
  7. 08 12月, 2011 1 次提交
    • S
      ceph: use i_ceph_lock instead of i_lock · be655596
      Sage Weil 提交于
      We have been using i_lock to protect all kinds of data structures in the
      ceph_inode_info struct, including lists of inodes that we need to iterate
      over while avoiding races with inode destruction.  That requires grabbing
      a reference to the inode with the list lock protected, but igrab() now
      takes i_lock to check the inode flags.
      
      Changing the list lock ordering would be a painful process.
      
      However, using a ceph-specific i_ceph_lock in the ceph inode instead of
      i_lock is a simple mechanical change and avoids the ordering constraints
      imposed by igrab().
      Reported-by: NAmon Ott <a.ott@m-privacy.de>
      Signed-off-by: NSage Weil <sage@newdream.net>
      be655596
  8. 27 7月, 2011 6 次提交
  9. 21 7月, 2011 1 次提交
  10. 20 7月, 2011 1 次提交
  11. 14 6月, 2011 2 次提交
  12. 08 6月, 2011 3 次提交
  13. 05 5月, 2011 1 次提交
  14. 22 3月, 2011 2 次提交
    • 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
  15. 18 12月, 2010 1 次提交
  16. 16 12月, 2010 1 次提交
  17. 10 11月, 2010 2 次提交
  18. 08 11月, 2010 1 次提交
    • S
      ceph: fix open for write on clustered mds · 7421ab80
      Sage Weil 提交于
      Normally when we open a file we already have a cap, and simply update the
      wanted set.  However, if we open a file for write, but don't have an auth
      cap, that doesn't work; we need to open a new cap with the auth MDS.  Only
      reuse existing caps if we are opening for read or the existing cap is auth.
      Signed-off-by: NSage Weil <sage@newdream.net>
      7421ab80
  19. 21 10月, 2010 1 次提交
    • Y
      ceph: factor out libceph from Ceph file system · 3d14c5d2
      Yehuda Sadeh 提交于
      This factors out protocol and low-level storage parts of ceph into a
      separate libceph module living in net/ceph and include/linux/ceph.  This
      is mostly a matter of moving files around.  However, a few key pieces
      of the interface change as well:
      
       - ceph_client becomes ceph_fs_client and ceph_client, where the latter
         captures the mon and osd clients, and the fs_client gets the mds client
         and file system specific pieces.
       - Mount option parsing and debugfs setup is correspondingly broken into
         two pieces.
       - The mon client gets a generic handler callback for otherwise unknown
         messages (mds map, in this case).
       - The basic supported/required feature bits can be expanded (and are by
         ceph_fs_client).
      
      No functional change, aside from some subtle error handling cases that got
      cleaned up in the refactoring process.
      Signed-off-by: NSage Weil <sage@newdream.net>
      3d14c5d2
  20. 07 10月, 2010 1 次提交
  21. 04 8月, 2010 1 次提交
  22. 03 8月, 2010 1 次提交
  23. 02 8月, 2010 3 次提交
  24. 28 7月, 2010 1 次提交