]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge branch 'wip-13800' of git://github.com/ukernel/ceph
authorGreg Farnum <gfarnum@redhat.com>
Wed, 25 Nov 2015 22:21:38 +0000 (14:21 -0800)
committerGreg Farnum <gfarnum@redhat.com>
Wed, 25 Nov 2015 22:21:38 +0000 (14:21 -0800)
client: fix deadlock related to async pagecache invalidation

Conflicts:
src/client/Client.cc
Fixed a conflict with the earlier page cache invalidate
changes in 73beb7f9378182cc3901fe86c4f1f5d5d98169a6.

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
1  2 
src/client/Client.cc
src/client/Client.h

index e6c48bbeaa351e05578e69bc169992295c37838b,e19e2d693f8604625d2b27573dc3552c93e9b53e..c39ff6438b7a2216f50deba1f8d129bb82e53971
@@@ -2863,9 -2857,15 +2863,9 @@@ void Client::put_cap_ref(Inode *in, in
      if (last & CEPH_CAP_FILE_CACHE) {
        ldout(cct, 5) << "put_cap_ref dropped last FILE_CACHE ref on " << *in << dendl;
        ++put_nref;
 -      // release clean pages too, if we dont want RDCACHE
 -      if (!(in->caps_wanted() & CEPH_CAP_FILE_CACHE))
 -      drop |= CEPH_CAP_FILE_CACHE;
      }
 -    if (drop) {
 -      if (drop & CEPH_CAP_FILE_CACHE)
 -      _invalidate_inode_cache(in);
 +    if (drop)
-       check_caps(in, false);
+       check_caps(in, false);
 -    }
      if (put_nref)
        put_inode(in, put_nref);
    }
Simple merge