1. 19 2月, 2013 1 次提交
  2. 18 1月, 2013 2 次提交
    • S
      ceph: Check for created flag in response from mds · 6e8575fa
      Sam Lang 提交于
      The mds now sends back a created inode if the create request
      performed the create.  If the file already existed, no inode is
      returned in the reply.  This allows ceph to set the created flag
      in atomic_open so that permissions are properly checked in the case
      that the file wasn't created by the create call to the mds.
      
      To ensure compability with previous kernels, a feature for sending
      back the inode in the create reply was added, so that the mds will
      only send back the inode if the client indicates it supports the
      feature.
      Signed-off-by: NSam Lang <sam.lang@inktank.com>
      Reviewed-by: NSage Weil <sage@inktank.com>
      6e8575fa
    • S
      ceph: Check for err on mds request in atomic_open · 79aec984
      Sam Lang 提交于
      The error returned by ceph_mdsc_do_request includes errors sending the
      request, errors on timeout, or any errors coming from the mds.  If
      ceph_mdsc_do_request returns an error, the reply struct will most likely
      be bogus.  We need to bail out and propogate the error instead of
      overwriting it.
      Signed-off-by: NSam Lang <sam.lang@inktank.com>
      Reviewed-by: NSage Weil <sage@inktank.com>
      79aec984
  3. 18 12月, 2012 1 次提交
  4. 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
  5. 02 10月, 2012 1 次提交
  6. 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
  7. 14 7月, 2012 5 次提交
  8. 08 5月, 2012 1 次提交
  9. 14 12月, 2011 1 次提交
  10. 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
  11. 27 7月, 2011 6 次提交
  12. 21 7月, 2011 1 次提交
  13. 20 7月, 2011 1 次提交
  14. 14 6月, 2011 2 次提交
  15. 08 6月, 2011 3 次提交
  16. 05 5月, 2011 1 次提交
  17. 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
  18. 18 12月, 2010 1 次提交
  19. 16 12月, 2010 1 次提交
  20. 10 11月, 2010 2 次提交
  21. 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
  22. 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
  23. 07 10月, 2010 1 次提交
  24. 04 8月, 2010 1 次提交
  25. 03 8月, 2010 1 次提交