]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #22354 from ukernel/luminous-24369
authorYuri Weinstein <yweinste@redhat.com>
Sat, 9 Jun 2018 14:23:02 +0000 (07:23 -0700)
committerGitHub <noreply@github.com>
Sat, 9 Jun 2018 14:23:02 +0000 (07:23 -0700)
luminous: client: void sending mds request while holding cap reference

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
1  2 
src/client/Client.cc
src/client/Client.h

index 78fd9e9bc06d03c030171f19e7efaa9a7c765f43,306413f50de1c6a4d6b404b8975d59caac01d6f8..bf1cba22f1ac6847c278bed46f90017ee80b0a01
@@@ -9307,9 -9363,9 +9308,9 @@@ success
    // extend file?
    if (totalwritten + offset > in->size) {
      in->size = totalwritten + offset;
 -    mark_caps_dirty(in, CEPH_CAP_FILE_WR);
 +    in->mark_caps_dirty(CEPH_CAP_FILE_WR);
  
-     if (is_quota_bytes_approaching(in, f->actor_perms)) {
+     if (is_quota_bytes_approaching(in, quota_roots)) {
        check_caps(in, CHECK_CAPS_NODELAY);
      } else if (is_max_size_approaching(in)) {
        check_caps(in, 0);
@@@ -12992,9 -13032,9 +12994,9 @@@ int Client::_fallocate(Fh *fh, int mode
        in->size = size;
        in->mtime = ceph_clock_now();
        in->change_attr++;
 -      mark_caps_dirty(in, CEPH_CAP_FILE_WR);
 +      in->mark_caps_dirty(CEPH_CAP_FILE_WR);
  
-       if (is_quota_bytes_approaching(in, fh->actor_perms)) {
+       if (is_quota_bytes_approaching(in, quota_roots)) {
          check_caps(in, CHECK_CAPS_NODELAY);
        } else if (is_max_size_approaching(in)) {
        check_caps(in, 0);
Simple merge