1. 12 Jan, 2012 5 commits
    • Alex Elder's avatar
      ceph: ensure prealloc_blob is in place when removing xattr · 83eb26af
      Alex Elder authored
      In __ceph_build_xattrs_blob(), if a ceph inode's extended attributes
      are marked dirty, all attributes recorded in its rb_tree index are
      formatted into a "blob" buffer.  The target buffer is recorded in
      ceph_inode->i_xattrs.prealloc_blob, and it is expected to exist and
      be of sufficient size to hold the attributes.
      
      The extended attributes are marked dirty in two cases: when a new
      attribute is added to the inode; or when one is removed.  In the
      former case work is done to ensure the prealloc_blob buffer is
      properly set up, but in the latter it is not.
      
      Change the logic in ceph_removexattr() so it matches what is
      done in ceph_setxattr().  Note that this is done in a way that
      keeps the two blocks of code nearly identical, in anticipation
      of a subsequent patch that encapsulates some of this logic into
      one or more helper routines.
      Signed-off-by: default avatarAlex Elder <elder@dreamhost.com>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      83eb26af
    • Alex Elder's avatar
      rbd: initialize snap_rwsem in rbd_add() · 0e805a1d
      Alex Elder authored
      New rbd device structures get initialized in rbd_add().  Many of
      the fields rely on being initially zero-filled.  However we lockdep
      was noticing that the rw_semaphore embedded in the header field
      was not getting properly initialized.  Fix that.
      Signed-off-by: default avatarAlex Elder <elder@dreamhost.com>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      0e805a1d
    • Sage Weil's avatar
      ceph: enable/disable dentry complete flags via mount option · a40dc6cc
      Sage Weil authored
      Enable/disable use of the dentry dir 'complete' flag via a mount option.
      This lets the admin control whether ceph uses the dcache to satisfy
      negative lookups or readdir when it has the entire directory contents in
      its cache.
      
      This is purely a performance optimization; correctness is guaranteed
      whether it is enabled or not.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      a40dc6cc
    • Sage Weil's avatar
      vfs: export symbol d_find_any_alias() · 46f72b34
      Sage Weil authored
      Ceph needs this.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      46f72b34
    • Alex Elder's avatar
      ceph: always initialize the dentry in open_root_dentry() · d46cfba5
      Alex Elder authored
      When open_root_dentry() gets a dentry via d_obtain_alias() it does
      not get initialized.  If the dentry obtained came from the cache,
      this is OK.  But if not, the result is an improperly initialized
      dentry.
      
      To fix this, call ceph_init_dentry() regardless of which path
      produced the dentry.  That function returns immediately for a dentry
      that is already initialized, it is safe to use either way.
      
      (Credit to Sage, who suggested this fix.)
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      d46cfba5
  2. 10 Jan, 2012 7 commits
  3. 04 Jan, 2012 13 commits
  4. 03 Jan, 2012 9 commits
  5. 02 Jan, 2012 2 commits
  6. 31 Dec, 2011 4 commits