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>
The client was using the configured maximum readahead of 0 which was changed in
95ee699891. This prevented readahead from ever
running (without setting a different default from 0).
Fixes: http://tracker.ceph.com/issues/16024
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Delete copy constructor and assignment operator, so the checking can
be moved from linking to compile time - as it was when the above
where only declared, but not defined.
Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
If pool-level mirroring is enabled, deleting the journal
could cause a deadlock attempting to delete remote peer
sync-point snapshots.
Fixes: http://tracker.ceph.com/issues/16235
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Currently XioMessenger encodes an entity_addr_t in its wire header.
The new 'features' argument to entity_addr_t::encode should have
the actual XioMessenger::local_features value when actually encoding
(and some value otherwise).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
so we can use the utlitiy functions offered by ceph-helper.sh, and enable
cmake to run this test.
* ceph-disk/tests/ceph-disk.sh: it checks ../ for the executables for which
fixtures are set up. but this assumption does not hold when we are using
cmake for out-of-source build. so we need to pass the build directory to
ceph-disk.sh. ${CEPH_BIN} is used for this purpose in this change, it is
".." by default, so this change is backward compatible. and one can run
tox without setting up the ${CEPH_BIN} env variable.
* ceph-disk/test-requirements.txt: bump up tox to 2.0+
in the case of "make check", both cmake and automake pass ${CEPH_BIN} env
variables to the "make check" tests, so we can simpy pass it down via tox.ini's
"passenv" setting. per
https://testrun.org/tox/latest/example/basic.html#passing-down-environment-variables,
this feature was introduce in tox 2.0. so bump up the minimum required
tox version to 2.0 in ceph-disk/test-requirements.txt.
* ceph-disk/tox.ini: pass CEPH_BIN, CEPH_BIN, and CEPH_ROOT down to ceph-disk.sh
Signed-off-by: Kefu Chai <kchai@redhat.com>
If an image deletion which causes the replayer to stop (due to an error)
before the deletion is detected, the deletion should still occur.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
To mount non-default filesytem, user needs to provide mds namespace ID.
This is inconvenience.
This patch makes user be able to mount filesystem by name. To do this,
client first subscribes to FSMapUser. Subscribe to mdsmap.<ID> after
knowning ID of the filesystem.
Signed-off-by: Yan, Zheng <zyan@redhat.com>