1. 23 3月, 2010 1 次提交
  2. 24 12月, 2009 1 次提交
  3. 22 12月, 2009 1 次提交
  4. 04 12月, 2009 1 次提交
  5. 12 11月, 2009 1 次提交
  6. 28 10月, 2009 1 次提交
  7. 07 10月, 2009 1 次提交
    • S
      ceph: directory operations · 2817b000
      Sage Weil 提交于
      Directory operations, including lookup, are defined here.  We take
      advantage of lookup intents when possible.  For the most part, we just
      need to build the proper requests for the metadata server(s) and
      pass things off to the mds_client.
      
      The results of most operations are normally incorporated into the
      client's cache when the reply is parsed by ceph_fill_trace().
      However, if the MDS replies without a trace (e.g., when retrying an
      update after an MDS failure recovery), some operation-specific cleanup
      may be needed.
      
      We can validate cached dentries in two ways.  A per-dentry lease may
      be issued by the MDS, or a per-directory cap may be issued that acts
      as a lease on the entire directory.  In the latter case, a 'gen' value
      is used to determine which dentries belong to the currently leased
      directory contents.
      
      We normally prepopulate the dcache and icache with readdir results.
      This makes subsequent lookups and getattrs avoid any server
      interaction.  It also lets us satisfy readdir operation by peeking at
      the dcache IFF we hold the per-directory cap/lease, previously
      performed a readdir, and haven't dropped any of the resulting
      dentries.
      Signed-off-by: NSage Weil <sage@newdream.net>
      2817b000