]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
client: move readahead ref get/put to obj constr 9656/head
authorPatrick Donnelly <pdonnell@redhat.com>
Fri, 10 Jun 2016 21:33:04 +0000 (17:33 -0400)
committerGreg Farnum <gfarnum@redhat.com>
Sun, 12 Jun 2016 21:07:25 +0000 (14:07 -0700)
commit2eaaf2e524c8b95b1b22b6bd7ba153b52746fd01
treef9a296b24ae5d37cf61c38fb5fe31fc8f5bd8da0
parent1ec2ef876d0e5cfe595ebb4a98fabf4958e9e937
client: move readahead ref get/put to obj constr

The readahead context was incrementing the file handle reference count but only
decreasing in finish which is not called if readahead is a no-op.

This fixes a bug caught in testing where readahead was causing inode to become
disconnected:

    2016-06-10 19:46:48.953018 7f2a4351be80  1 client.4125 dump_inode: DISCONNECTED inode 10000000502 #10000000502 ref 110000000502.head(faked_ino=2307 ref=1 ll_ref=0 cap_refs={1024=0,2048=0,4096=0,8192=0} open={1=0,2=0} mode=100666 size=4194304/0 mtime=2016-06-10 19:29:45.107417 caps=-(0=pAsLsXsFscr) objectset[10000000502 ts 2/4012653 objects 0 dirty_or_tx 0] 0x7f2a24300d00)
    2016-06-10 19:46:48.953032 7f2a4351be80  2 client.4125 cache still has 0+155 items, waiting (for caps to release?)

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit b5a0773259ce9f2ef44e8e6925ab11dc1a5e55e6)

Signed-off-by: Greg Farnum <gfarnum@redhat.com
src/client/Client.cc
src/client/Client.h