]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Tue, 30 Aug 2011 02:32:22 +0000 (19:32 -0700)]
os/hashindex: fix #include
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Samuel Just [Tue, 30 Aug 2011 00:59:10 +0000 (17:59 -0700)]
Merge branch 'wip_colindex'
Samuel Just [Thu, 25 Aug 2011 22:35:15 +0000 (15:35 -0700)]
osd/,os/,osdc/: Convert collection_list_handle_t to a struct
Previously, we stored the collection_list handle as an opaque
uint64_t. Now, collection_list_handle_t is a struct defined
in types.h.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Thu, 25 Aug 2011 15:39:37 +0000 (08:39 -0700)]
fsconverter.cc: Added fsconverter
fsconverter updates an existing FileStore to the most recent FileStore
format
Signed-off-by: Samuel Just <rexludorum@gmail.com>
Samuel Just [Tue, 23 Aug 2011 15:53:26 +0000 (08:53 -0700)]
FileStore: On mount, scan collections for unstable state
CollectionIndex implementations may perform compound operations
leaving invalid state if interrupted. index->cleanup() gives
the implementation an oportunity to cleanup any in-progress
operation. For HashIndex, split and merge fall in this
category
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Thu, 25 Aug 2011 15:40:43 +0000 (08:40 -0700)]
FileStore: Added update_version_stamp
update_version_stamp may be used to refresh the filestore version
stamp when all collections have been brought to the current
version.
Signed-off-by: Samuel Just <rexludorum@gmail.com>
Samuel Just [Wed, 17 Aug 2011 23:23:00 +0000 (16:23 -0700)]
FileStore: Add filestore version stamp
A filestore will now be tagged with a version stamp during
mkfs. If on mount the version stamp detected lags the current
version, the mount will fail unless filestore_update_collections
is set in gconf. If it is set, opening a collection will cause
the version stamp on the collection to be read and the
appropriate indexing implmentation to be used. This will allow
for conversion from old collection indexing schemes to new
ones.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Wed, 17 Aug 2011 20:56:45 +0000 (13:56 -0700)]
osd_types.h: Fix support for old object_info_t
The object locator in the old encoding is necessary
to get the hash for soid.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Tue, 9 Aug 2011 22:46:16 +0000 (15:46 -0700)]
FileStore: Integrates HashIndex/IndexManager into FileStore
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Tue, 16 Aug 2011 00:43:48 +0000 (17:43 -0700)]
os/FlatIndex: FlatIndex encapsulates previous FileStore behavior
FlatIndex will be used to read and convert the previous on disk
format.
Signed-off-by: Samuel Just <rexludorum@gmail.com>
Samuel Just [Tue, 9 Aug 2011 22:45:12 +0000 (15:45 -0700)]
FileStore: CollectionIndex, HashIndex, IndexManager
Adds ColletionIndex, an interface for collection indexing
systems, and HashIndex, a mechanism for organising a prehashed
collection.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Wed, 13 Jul 2011 18:02:56 +0000 (11:02 -0700)]
ReplicatedPG: find_object_context now takes an hobject_t
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Mon, 11 Jul 2011 20:22:48 +0000 (13:22 -0700)]
osd/: fix hobject_t construction
sobject_t requires only an object_t and a snapid_t. hobject_t also
requires the hash which should be used for the object. In most cases,
the osd must fill this in using the op message. In cases where the hash
used does not matter (as in the metadata collection), the explicit
hobject_t(const sobject_t &) constructor supplies a hash.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Fri, 8 Jul 2011 18:35:23 +0000 (11:35 -0700)]
dupstore: s/sobject_t/hobject_t
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Fri, 8 Jul 2011 18:29:50 +0000 (11:29 -0700)]
src/messages/: s/sobject_t/hobject_t
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Fri, 8 Jul 2011 18:16:01 +0000 (11:16 -0700)]
src/osd/: s/sobject_t/hobject_t/g
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Fri, 8 Jul 2011 18:13:49 +0000 (11:13 -0700)]
src/os/: s/sobject_t/hobject_t/g
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Fri, 8 Jul 2011 17:45:34 +0000 (10:45 -0700)]
object.h: hobject_t definition
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Tue, 9 Aug 2011 22:42:50 +0000 (15:42 -0700)]
ceph/src/test/store_test.cc: added store_test.cc
Meant to test basic file store functionality
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Wed, 24 Aug 2011 18:35:36 +0000 (11:35 -0700)]
ObjectStore.h: const cleanup in transaction method params
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Samuel Just [Thu, 25 Aug 2011 15:41:40 +0000 (08:41 -0700)]
FileStore.cc: Fix error in collection_rename
Previously, the rename operated on the collection names. Now, rename
operations on the full paths to the collections.
Signed-off-by: Samuel Just <rexludorum@gmail.com>
Samuel Just [Mon, 29 Aug 2011 17:41:24 +0000 (10:41 -0700)]
JournalingObjectStore: journal_replay committed_seq fix
Previously, committed_seq was set to op_seq at the end of
replay_journal. committed_seq should not actually be set until the
sync thread runs.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Tommi Virtanen [Mon, 29 Aug 2011 22:43:41 +0000 (15:43 -0700)]
Integrate Doxygen into Sphinx docs.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Tommi Virtanen [Fri, 19 Aug 2011 23:43:21 +0000 (16:43 -0700)]
First draft of the documentation overhaul.
To build the docs, run ./admin/build-doc. To browse them, either get
them on any static website, or just run ./admin/serve-doc to serve
them quickly off of port 8080.
build-doc sets up a virtualenv to avoid needing Sphinx installed
system-wide. serve-doc needs thttpd installed.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Yehuda Sadeh [Tue, 30 Aug 2011 00:19:37 +0000 (17:19 -0700)]
test: make escaping unitest happy
Yehuda Sadeh [Tue, 30 Aug 2011 00:12:03 +0000 (17:12 -0700)]
json escaping fix
Yehuda Sadeh [Tue, 30 Aug 2011 00:02:00 +0000 (17:02 -0700)]
radosgw_admin, rados tool: don't use camel casing for json output
Yehuda Sadeh [Tue, 30 Aug 2011 00:01:41 +0000 (17:01 -0700)]
fix json escaping
Sage Weil [Mon, 29 Aug 2011 22:53:57 +0000 (15:53 -0700)]
client: debug link/unlink and dn_set parent relationship
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Mon, 29 Aug 2011 22:02:37 +0000 (15:02 -0700)]
heartbeatmap: fix reset_timeout with mixed-used threads
If you have a ThreadPool used by multiple WorkQueues, and some of them are
setting a suicide timeout, we need to clear it when a suicide timeout is
not set.
Signed-off-by: Sage Weil <sage@newdream.net>
Yehuda Sadeh [Mon, 29 Aug 2011 22:04:59 +0000 (15:04 -0700)]
rados tool: df dumps formatted data
Yehuda Sadeh [Mon, 29 Aug 2011 21:19:43 +0000 (14:19 -0700)]
rgw: log show dumps some information about bucket owner
Samuel Just [Mon, 29 Aug 2011 20:06:26 +0000 (13:06 -0700)]
bandaid for gitbuider
Sage Weil [Mon, 29 Aug 2011 20:39:12 +0000 (13:39 -0700)]
Merge remote branch 'vapre/wip-pgid'
Sage Weil [Mon, 29 Aug 2011 20:39:10 +0000 (13:39 -0700)]
osd: remove dead lookup_lock_pg()
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 18:54:21 +0000 (11:54 -0700)]
osd: set suicide timeouts on some workqueues
OpWQ: timeout * 10
RecoveryWQ: this does no io; it if stalls we're probably stuck in an
infinite loop. timeout * 10.
ScrubFinalizeWQ: this is cpu only. we're probably stuck in a loop, or
swapping. timeout * 10.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 18:41:24 +0000 (11:41 -0700)]
mon: health not ok when up < in osds
We were warning if there were any not up or in osds. Instead, warn if
there are any osds that are in but not up. That means if a node fails
and successfully marks the node out and retracts onto remaining nodes, the
ceph cluster is healthy again.
Presumably the fact that the nodes failed should raise other alerts,
because those specific daemons/nodes are not healthy.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 17:08:08 +0000 (10:08 -0700)]
filestore: add suicide grace to workqueue
The main thing we are worried about here are kernel BUGs that kill off our
threads.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 17:04:30 +0000 (10:04 -0700)]
heartbeatmap: add suicide grace
Add a second suicide grace period that will make us kill ourselves if
we are sufficiently catatonic.
Signed-off-by: Sage Weil <sage@newdream.net>
Yehuda Sadeh [Mon, 29 Aug 2011 17:57:19 +0000 (10:57 -0700)]
rgw: don't check for time skew when Expires was set
Sage Weil [Mon, 29 Aug 2011 16:27:13 +0000 (09:27 -0700)]
client: simplify Client::remove_cap() args
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 16:21:33 +0000 (09:21 -0700)]
client: clean up Client::remove_session_caps() args
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 16:20:53 +0000 (09:20 -0700)]
client: don't falsely populate mds_sessions on bad MClientSession msg
If from isn't in the map, we don't want to add it via operator[].
Fixes: #1367
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 15:59:46 +0000 (08:59 -0700)]
testlibrbd: remove useless sizeofs
Should be sizeof(*result), if anything.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Mon, 29 Aug 2011 15:55:53 +0000 (08:55 -0700)]
testlibrbd: fix assert side effect
Coverity cid 1, 2
Signed-off-by: Sage Weil <sage@newdream.net>
Wido den Hollander [Sat, 27 Aug 2011 20:37:05 +0000 (22:37 +0200)]
FileJournal: Also classify kernel major version 3 as safe with disk-cache on
Signed-off-by: Wido den Hollander <wido@widodh.nl>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Sun, 28 Aug 2011 03:45:15 +0000 (20:45 -0700)]
osd: decode pg_t in old PG::Info
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Sat, 27 Aug 2011 16:57:13 +0000 (09:57 -0700)]
osd: requrie PGID64 of mons, other osds
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Sat, 27 Aug 2011 16:56:45 +0000 (09:56 -0700)]
mds: require PGID64 of mons
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Sat, 27 Aug 2011 16:56:07 +0000 (09:56 -0700)]
mon: require PGID64 of osds and other mons
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 26 Aug 2011 19:31:52 +0000 (12:31 -0700)]
pgmap: decode old pg_t
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 26 Aug 2011 18:01:41 +0000 (11:01 -0700)]
mdsmap: int64_t pool ids
Encode old-format maps for clients without PGID64 feature bit.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 26 Aug 2011 17:03:04 +0000 (10:03 -0700)]
osd: add 64-bit pools to ObjectLocator
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 26 Aug 2011 16:55:20 +0000 (09:55 -0700)]
osdmap: encode/decode old + new version
In MOSDMap, reencode map payloads using old format if the target doesn't
have the PGID64 feature bit.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 21:08:52 +0000 (14:08 -0700)]
osd: decode old pg_stat_t
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 20:59:42 +0000 (13:59 -0700)]
osd: make MOSDOp[Reply] encoding backwards compatible
Move away from struct-based encoding of MOSDOpReply while we're at it.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 20:52:30 +0000 (13:52 -0700)]
osd: add PGID64 feature bit
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 20:51:29 +0000 (13:51 -0700)]
osd: int pool -> int64_t pool
Internal interfaces.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 20:30:49 +0000 (13:30 -0700)]
osd: redo pg_t encoding with 64-bit pool id
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Thu, 25 Aug 2011 20:28:27 +0000 (13:28 -0700)]
osd: fix pg_pool_t::get_pg_num return types
Unsigned!
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Fri, 26 Aug 2011 04:29:52 +0000 (21:29 -0700)]
ceph_context: whitespace
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Sat, 27 Aug 2011 16:27:41 +0000 (09:27 -0700)]
Merge commit 'v0.34'
Sage Weil [Sat, 27 Aug 2011 04:48:47 +0000 (21:48 -0700)]
v0.34
Yehuda Sadeh [Fri, 26 Aug 2011 23:54:05 +0000 (16:54 -0700)]
rgw: use formatter->dump_string() instead of dump_format()
Yehuda Sadeh [Fri, 26 Aug 2011 21:10:25 +0000 (14:10 -0700)]
rgw: get bucket info only if bucket name is not empty
Josh Durgin [Thu, 11 Aug 2011 19:01:15 +0000 (12:01 -0700)]
Makefile.am: install coverage files for libtool outputs as well
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Yehuda Sadeh [Fri, 26 Aug 2011 18:43:47 +0000 (11:43 -0700)]
librados: watch request should wait for safe response
Sage Weil [Fri, 26 Aug 2011 16:47:03 +0000 (09:47 -0700)]
objectcacher: only want for commit
There was some old, weird stuff going on here where we would wait for the
ACK and COMMIT separately. This is just wrong. Writeback does not
complete until the data is committed on disk.
Simplify by waiting only for commit, removing all the 'ack' code, and
going back to a single callback (flush_set).
I didn't notice this for
05063867e2a54176ffc9bbc73391f52766ab403f ; both of
these cleanups are needed to fix this.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Fri, 26 Aug 2011 16:10:21 +0000 (09:10 -0700)]
mds: fix shadow
Coverity cid 29
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Fri, 26 Aug 2011 16:09:45 +0000 (09:09 -0700)]
fix utime.h #include recursion
Coverity cid 11, 13
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Fri, 26 Aug 2011 16:00:08 +0000 (09:00 -0700)]
crush: comment fall-thru
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Sage Weil [Thu, 25 Aug 2011 19:28:32 +0000 (12:28 -0700)]
mds: remove unused Mutation in do_rmdir_rollback()
Signed-off-by: Sage Weil <sage@newdream.net>
Greg Farnum [Thu, 25 Aug 2011 19:40:55 +0000 (12:40 -0700)]
workunits: make file_layout test setting only one parameter
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Greg Farnum [Thu, 25 Aug 2011 19:22:02 +0000 (12:22 -0700)]
cephfs: use strtol instead of atoi; handle 0 properly
Besides being generally better, this means we can accept pool 0
as the pool to store stuff in.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Greg Farnum [Thu, 25 Aug 2011 16:24:58 +0000 (09:24 -0700)]
cephfs: fix the stripe_count documentation.
Whoops!
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Greg Farnum [Thu, 25 Aug 2011 18:28:42 +0000 (11:28 -0700)]
mds: server: should apply new layout settings on top of old layout
This way, the MDS can handle updates of some values without needing
the user to specify the entire layout (ie, they can just switch pools).
This brings the behavior more in line with setting the dir layout.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Greg Farnum [Thu, 25 Aug 2011 16:49:38 +0000 (09:49 -0700)]
mds: allow setting all options on a file layout.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Sage Weil [Thu, 25 Aug 2011 19:37:18 +0000 (12:37 -0700)]
objectcacher: remove uncommitted xlist<>; fix broken purge() cleanup
There was a problem where:
- we would dirty some buffers on an object
- bump dirty_tx count
- flush()
- this adds the Object to ObjectSet::uncommitted
- truncate
- client clears FILE_BUFFER cap_ref
- Object::purge()
- clear dirty_tx count
- client puts last inode
- Object::uncommitted is not empty in ~ObjectSet
(This was triggered after several runs of workunits/suites/blogbensh.sh
on sepia.)
It turns out the uncommitted xlist<> is pretty useless, though: the same
information is captured in the dirty_tx counter. We add a separate
counter to the Object itself (for the benefit of Object::can_close()).
We also clean up Object::purge() to call truncate(0), a small
simplification.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Yehuda Sadeh [Thu, 25 Aug 2011 19:11:58 +0000 (12:11 -0700)]
rgw: remove some compilation warnings
Yehuda Sadeh [Thu, 25 Aug 2011 19:06:16 +0000 (12:06 -0700)]
rgw: don't override ret value in do_read_permisions
Yehuda Sadeh [Thu, 25 Aug 2011 18:25:19 +0000 (11:25 -0700)]
rgw: return correct bucket missing error when needed
Yehuda Sadeh [Thu, 25 Aug 2011 18:11:17 +0000 (11:11 -0700)]
rgw: fix 500 error on bucket creation
Sage Weil [Thu, 25 Aug 2011 00:32:07 +0000 (17:32 -0700)]
rgw: fix clitest
Colin Patrick McCabe [Thu, 25 Aug 2011 00:19:41 +0000 (17:19 -0700)]
MonClient: fix possible null dereference
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Colin Patrick McCabe [Wed, 24 Aug 2011 23:36:12 +0000 (16:36 -0700)]
mds/Server.c: fix memory leak in err path
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Yehuda Sadeh [Thu, 25 Aug 2011 00:07:04 +0000 (17:07 -0700)]
rgw: don't check for zero content when creating a bucket
Yehuda Sadeh [Thu, 25 Aug 2011 00:01:04 +0000 (17:01 -0700)]
rgw: rgw_admin bucket stats dumps owner
Sage Weil [Wed, 24 Aug 2011 23:54:02 +0000 (16:54 -0700)]
client: drop useless insert_trace timestamp argument
This is reachable via request. It was also misnamed in the header :/.
Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil [Wed, 24 Aug 2011 23:51:15 +0000 (16:51 -0700)]
client: be careful about replacing dentries during readdir assimilation
When we are assimilate readdir results into our cache, we need to be more
careful about replacing existing dentries. We were calling
insert_dentry_inode(), which would replace a name if it already exists,
which might include pd->first, an active iterator.
Move the dentry link/relink into the caller (where we already have an
iterator pointing to the existing item, if any). Then update the dentry
lease information separately.
Fixes: #1391
Signed-off-by: Sage Weil <sage@newdream.net>
Yehuda Sadeh [Wed, 24 Aug 2011 23:41:10 +0000 (16:41 -0700)]
rgw: add radosgw_admin bucket stats
Sage Weil [Wed, 24 Aug 2011 23:25:49 +0000 (16:25 -0700)]
client: factor update_dentry_lease() out of insert_dentry_inode()
The first bit of insert_dentry_inode() handles the details of checking
whether an item still exists, un/relinking it, etc.
The second bit just updates the dentry lease information.
Signed-off-by: Sage Weil <sage@newdream.net>
Colin Patrick McCabe [Wed, 24 Aug 2011 22:51:38 +0000 (15:51 -0700)]
librados: fix memory leak in error path
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Colin Patrick McCabe [Wed, 24 Aug 2011 21:52:47 +0000 (14:52 -0700)]
test/confutils.cc: fix resource leak
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Sage Weil [Wed, 24 Aug 2011 22:04:10 +0000 (15:04 -0700)]
client: carry inode reference across calls to _flush
Also drop the unused _flush Context* argument.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Yehuda Sadeh [Wed, 24 Aug 2011 22:02:01 +0000 (15:02 -0700)]
rgw: fix prepare_get_obj when ENOENT
Colin Patrick McCabe [Wed, 24 Aug 2011 21:50:26 +0000 (14:50 -0700)]
rbd: fix shared_ptr usage
shared_ptr calls the disposal function even when the pointer is null
that is being disposed of.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Colin Patrick McCabe [Wed, 24 Aug 2011 21:42:19 +0000 (14:42 -0700)]
do_kernel_showmapped: fix resource leak
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Sage Weil [Wed, 24 Aug 2011 21:40:42 +0000 (14:40 -0700)]
Merge remote branch 'origin/next'
Sage Weil [Wed, 24 Aug 2011 21:38:25 +0000 (14:38 -0700)]
client: fix readdir + cap recovation/reissue race
The current race:
- we start readdir
- mds revokes dir cap
- some file gets removed
- mds reissues dir cap
- we finish readdir and set I_COMPLETE
We should only set it if there have been no FILE_SHARED reissues during
the readdir.
Note that we still set I_COMPLETE even if we don't have the cap; that's
useless but harmless, since it is undefined without FILE_SHARED being
set.
Signed-off-by: Sage Weil <sage@newdream.net>
Colin Patrick McCabe [Wed, 24 Aug 2011 21:14:50 +0000 (14:14 -0700)]
rados_sync: fix resource leak on err
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>