]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge branch 'unstable' into leaks
authorGreg Farnum <gregf@hq.newdream.net>
Tue, 24 Aug 2010 06:41:41 +0000 (23:41 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Tue, 24 Aug 2010 06:41:41 +0000 (23:41 -0700)
Conflicts:
src/mds/Locker.cc

1  2 
src/mds/CInode.cc
src/mds/Locker.cc
src/mds/MDCache.cc
src/mds/Server.cc
src/mon/MonClient.cc
src/msg/SimpleMessenger.cc
src/osd/OSD.cc
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

Simple merge
index 83b2d7ce788d177bed56d611e30876ddeb718c08,cf8f38b409912e8d16eb290239e6551ca052ae6a..cc25d58581dc6d4adb0a71b590774dad24dcdf4e
@@@ -2302,7 -2375,30 +2380,31 @@@ void Locker::handle_client_cap_release(
    m->put();
  }
  
 +/* This function DOES put the passed message before returning */
+ void Locker::remove_client_cap(CInode *in, client_t client)
+ {
+   // clean out any pending snapflush state
+   if (!in->client_need_snapflush.empty())
+     _do_null_snapflush(in, client, 0);
+   in->remove_client_cap(client);
+   if (in->is_auth()) {
+     // make sure we clear out the client byte range
+     if (in->get_projected_inode()->client_ranges.count(client) &&
+       !(in->inode.nlink == 0 && !in->is_any_caps()))    // unless it's unlink + stray
+       check_inode_max_size(in);
+   } else {
+     request_inode_file_caps(in);
+   }
+   
+   eval(in, CEPH_CAP_LOCKS);
+   mds->mdcache->maybe_eval_stray(in);
+ }
  void Locker::handle_client_lease(MClientLease *m)
  {
    dout(10) << "handle_client_lease " << *m << dendl;
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc src/osd/OSD.cc
Simple merge
Simple merge
Simple merge