]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'origin/jewel'
authorGreg Farnum <gfarnum@redhat.com>
Thu, 10 Mar 2016 08:56:37 +0000 (00:56 -0800)
committerGreg Farnum <gfarnum@redhat.com>
Thu, 10 Mar 2016 08:56:37 +0000 (00:56 -0800)
Conflicts:
src/client/Client.h
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
1  2 
src/client/Client.cc
src/client/Client.h
src/common/config_opts.h

index 6e012ba27e847fc7e5b7778d0b96a4eb146bb03e,4b1568a968a71c0265ef9507d4cdc2ec527ca2cc..c92fe9767c92129af690f7a30fd196e8653b9e45
@@@ -5485,14 -5488,13 +5488,20 @@@ void Client::unmount(
      ldout(cct, 0) << " destroyed lost open file " << fh << " on " << *fh->inode << dendl;
      _release_fh(fh);
    }
 +  
 +  while (!ll_unclosed_fh_set.empty()) {
 +    set<Fh*>::iterator it = ll_unclosed_fh_set.begin();
 +    ll_unclosed_fh_set.erase(*it);
 +    ldout(cct, 0) << " destroyed lost open file " << *it << " on " << *((*it)->inode) << dendl;
 +    _release_fh(*it);
 +  }
  
+   while (!opened_dirs.empty()) {
+     dir_result_t *dirp = *opened_dirs.begin();
+     ldout(cct, 0) << " destroyed lost open dir " << dirp << " on " << *dirp->inode << dendl;
+     _closedir(dirp);
+   }
    _ll_drop_pins();
  
    while (unsafe_sync_write > 0) {
index c6ba74694f4ded95ea318e12ccc11d315e01fc31,40a97af888436ff46d771f7ebf62ee86fe771afe..d7a6ea0a5b8c87a5efcbef445bdddbcd8a0b3051
@@@ -421,7 -422,8 +422,8 @@@ protected
    // file handles, etc.
    interval_set<int> free_fd_set;  // unused fds
    ceph::unordered_map<int, Fh*> fd_map;
 -
 +  set<Fh*> ll_unclosed_fh_set;
+   ceph::unordered_set<dir_result_t*> opened_dirs;
    
    int get_fd() {
      int fd = free_fd_set.range_start();
Simple merge